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

     

  • 相关阅读:
    第四章例4-5
    第四章例4-4
    修改oracle 客户端PL/SQL 的路径问题
    解决div float后,父div高度无法自适应的问题
    include与jsp:include与s:action与s:include与iframe用法汇总
    解决js中onMouseOut事件冒泡的问题
    strut2配置action class 问题
    html块级元素与行内元素
    Tomcat 启动不了的问题
    oracle远程导入导出
  • 原文地址:https://www.cnblogs.com/cckong/p/13767176.html
Copyright © 2011-2022 走看看