工厂Demo

2019-12-19  本文已影响0人  知道吗123


public class PizzaStore {
    SimplePizzaFactory factory;
 
    public PizzaStore(SimplePizzaFactory factory) { 
        this.factory = factory;
    }
 
    public Pizza orderPizza(String type) {
        Pizza pizza;
 
        pizza = factory.createPizza(type);
 
        pizza.prepare();
        pizza.bake();
        pizza.cut();
        pizza.box();

        return pizza;
    }

}

public class SimplePizzaFactory {

    public Pizza createPizza(String type) {
        Pizza pizza = null;

        if (type.equals("cheese")) {
            pizza = new CheesePizza();
        } else if (type.equals("pepperoni")) {
            pizza = new PepperoniPizza();
        } else if (type.equals("clam")) {
            pizza = new ClamPizza();
        } else if (type.equals("veggie")) {
            pizza = new VeggiePizza();
        }
        return pizza;
    }
}

1.简单工厂
<1>封装变化
<2>依赖接口
<3>将变化的代码放到一起

2.工厂方法
定义:工厂方法模式定义了一个创建对象的接口,由子类决定要实例化的子类是哪一个,工厂方法让类把实例化推迟到子类 (有点像模板方法)
将产品的实现从使用中解耦

3.抽象工厂
定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类
场景:车间

区别:
继承(类) 和 组合(对象)
工厂方法提供框架
抽象工厂把一群相关产品集合起来,创建产品家族

依赖倒置

上一篇下一篇

猜你喜欢

热点阅读