美文网首页
工厂Demo

工厂Demo

作者: 知道吗123 | 来源:发表于2019-12-19 10:03 被阅读0次
    
    
    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.抽象工厂
    定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类
    场景:车间

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

    依赖倒置

    相关文章

      网友评论

          本文标题:工厂Demo

          本文链接:https://www.haomeiwen.com/subject/umfmnctx.html