工厂模式

设计模式

第四章 工厂模式


基础重点

设计原则

依赖倒置:是程序要依赖于抽象接口,不要依赖于具体实现。 简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。。

范例

披萨店

简单工厂模式-产品接口
package factoryDemo.demo1;
/**
 * @author joy zhou
 * @date 2021/7/16
 * 产品的抽象接口
 */
public interface IPizze {
    //多态显示的对象
    public void makePizze();
}

产品类
package factoryDemo.demo1;
/**
 * @author joy zhou
 * @date 2021/7/16
 */
public class CheesePizza implements IPizze{
    @Override
    public void makePizze() {
        System.out.printf("这个是芝士披萨");
    }
}
简单工厂类
package factoryDemo.demo1;
import java.util.HashMap;
import java.util.Map;
/**
 * @author joy zhou
 * @date 2021/7/15
 */
public class SimplePizzaFactory {
    //集合
    private static final Map<String,IPizze> map = new HashMap<>();
    static  {
        map.put("cheese",new CheesePizza());
    }
    public static IPizze createPizza(String type){
        return map.get(type);
    }
}

这个地方有一个优化,就是把很多的if语句优化掉了,让更多的披萨类进行加入就可以了

测试
package factoryDemo.demo1;
/**
 * @author joy zhou
 * @date 2021/7/16
 */
public class Main {
    public static void main(String[] args) {
        SimplePizzaFactory simplePizzaFactory = new SimplePizzaFactory();
        PizzeStore pizzeStore = new PizzeStore(simplePizzaFactory);
        pizzeStore.sellPizze("cheese").makePizze();
    }
}

总结:这个简单的工厂模式,实际上就是一个对产品做了一个多态的处理,然后根据不通的品种选择不同的产出披萨。

设计图如下

工厂模式


工厂模式

上一篇:go 循环依赖 循环引用 最佳实践


下一篇:perl 调用perl 脚本