概念
定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程 延迟到子类中。
一般实现
实现步骤
1
2
3
1.创建一个接口
2.实现接口的实体类
3.创建一个工厂,生成基于给定信息的实体类的对象
创建接口
1
2
3
public interface Fruit {
void eat();
}
实现接口的实体类
1
2
3
4
5
public class Apple implements Fruit {
@Override
public void eat() {
System.out.println("是苹果,可以直接吃");
}}
创建工厂
1
2
3
4
5
6
7
8
9
10
public class FruitFactory {
private static Map<String, Fruit> fruitMap = new HashMap<>();
static {
fruitMap.put("apple", new Apple());
fruitMap.put("banana", new Banana());
fruitMap.put("watermelon", new Watermelon());
}
public static Fruit getFruit(String fruitType) {
return fruitMap.get(fruitType);
}
SpringBoot工厂模式
建立工厂类
1
2
3
public interface AnimalFactory {
String food();
String animal();}
建立实现类
1
2
3
4
5
6
7
8
9
@Service
public class Cat implements AnimalFactory {
@Override
public String food(int type) {
return "吃鱼";}
@Override
public String animal(int type) {
return "猫";}
}
注入到map中
1
2
3
4
5
6
@Autowired
private Map<String, AnimalFactory> animalFactory;
public String factoryMode() {
AnimalFactory animal = animalFactory.get("cat");
return animal.animal() + animal.food();
}