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

     

  • 相关阅读:
    C# HTTP
    Iframe的应用
    亚马逊S3下载上传文件
    ubuntu14.0.4.3 devstack 安装openstack
    转--脉络清晰的BP神经网络讲解,赞
    转载:稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB
    Python 元组
    pyhon 模块与库
    开源推荐简介
    转载--PayPal高级工程总监:读完这100篇论文 就能成大数据高手
  • 原文地址:https://www.cnblogs.com/cckong/p/13767176.html
Copyright © 2011-2022 走看看