zoukankan      html  css  js  c++  java
  • 【设计模式】Headfirst设计模式——简单工厂运行代码

    public class Pizza {
        public void prepare()
        {
            System.out.println("preparing...");
        }
        public void bake()
        {
            System.out.println("baking...");
        }
        public void cut()
        {
            System.out.println("cutting...");
        }
        public void box()
        {
            System.out.println("boxing...");
        }
    
        public static void main(String[] args) {
            SimpleFactory sim=new SimpleFactory();
            PizzaStore pizzastore=new PizzaStore(sim);
            System.out.println("1st pizza");
            pizzastore.orderPizza("cheese");
            System.out.println("2rd pizza");
            pizzastore.orderPizza("veggie");
    
        }
    }
    class CheesePizza extends Pizza{
        String type="Cheese";
        CheesePizza(){
            System.out.println("cheesepizza created");
        }
    }
    class ClamPizza extends Pizza{
        String type="Clam";
        ClamPizza(){
            System.out.println("clampizza created");
        }
    
    }
    class VeggiePizza extends Pizza{
        String type="Veggie";
        VeggiePizza(){
            System.out.println("veggiepizza created");
        }
    }
    
    class SimpleFactory {
        public Pizza createPizza(String type) {
            Pizza pizza = null;
            if (type.equals("cheese")) {
                pizza = new CheesePizza();
            } else if (type.equals("clam")) {
                pizza = new ClamPizza();
            } else if (type.equals("veggie")) {
                pizza = new VeggiePizza();
            }
            return pizza;
        }
    }
    
    class PizzaStore {
        SimpleFactory simpleFactory;
    
        public PizzaStore(SimpleFactory simpleFactory) {
            this.simpleFactory = simpleFactory;
        }
    
        Pizza orderPizza(String type) {
            Pizza pizza = null;
    
            pizza = simpleFactory.createPizza(type);
    
            pizza.prepare();
            pizza.bake();
            pizza.cut();
            pizza.box();
            return pizza;
        }
    }

     

  • 相关阅读:
    postgresql全文检索部署实施
    从一整数数组中找出只重复一次的两个数
    Edit Distance 最小编辑距离
    Vue:v-model指令在其他元素类型的使用
    Vue:v-model指令
    Vue:v-on指令
    Vue:v-bind指令
    Vue:v-for指令
    框架Django
    Vue的安装和语法
  • 原文地址:https://www.cnblogs.com/cckong/p/13767176.html
Copyright © 2011-2022 走看看