工厂模式

"共产模式"

Posted by zwt on September 2, 2021

概念

定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程 延迟到子类中。

一般实现

实现步骤

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();
    }

参考

1.SpringBoot 工厂模式自动注入到Map 2.工厂模式