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

     

  • 相关阅读:
    flask中程序和请求上下文
    flask的初始化
    git 强制覆盖本地代码
    python编写一个带参数的装饰器
    Android 11 unexpected LOCAL_MODULE_CLASS for prebuilts: FAKE
    systemctl自定义service执行shell脚本时报错:code=exited, status=203/EXEC
    shell应用记录
    ssm在maven项目中的需要的依赖
    swiper 5张卡片轮播图实现效果
    Codeforces 1534 题解
  • 原文地址:https://www.cnblogs.com/cckong/p/13767176.html
Copyright © 2011-2022 走看看