zoukankan      html  css  js  c++  java
  • 设计模式之四:简单工厂(披萨店生产披萨模拟流程)

    简单工厂不是一个设计模式,只是一种变成习惯,常被误认为是“工厂模式”。(披萨店生产披萨模拟流程)

    工程名称:SimpleFactory  下载目录:http://www.cnblogs.com/jrsmith/admin/Files.aspx , SimpleFactory.zip

     1 package com.jyu.pizza;
     2 
     3 public abstract class Pizza {
     4 
     5     protected String name;
     6     
     7     public void prepare(){
     8         System.out.println(name+" is preparing...");
     9     }
    10     
    11     public void bake(){
    12         System.out.println(name+" is baking...");
    13     }
    14     
    15     public void cut(){
    16         System.out.println(name+" is cutting...");
    17     }
    18     
    19     public void box(){
    20         System.out.println(name+" is boxing...");
    21     }
    22     
    23 }
    View Code
     1 package com.jyu.pizza;
     2 
     3 
     4 /**
     5  * @author root
     6  *
     7  */
     8 public class CheesePizza extends Pizza {
     9     
    10     public CheesePizza(){
    11         name = "CheesePizza";
    12     }
    13 
    14 }
    View Code
    1 package com.jyu.pizza;
    2 
    3 public class ClamPizza extends Pizza {
    4 
    5     public ClamPizza() {
    6         name = "ClamPizza";
    7     }
    8 
    9 }
    View Code
    1 package com.jyu.pizza;
    2 
    3 public class PepperoniPizza extends Pizza {
    4 
    5     public PepperoniPizza() {
    6         name = "PepperoniPizza";
    7     }
    8 
    9 }
    View Code
    1 package com.jyu.pizza;
    2 
    3 public class VeggiePizza extends Pizza {
    4 
    5     public VeggiePizza() {
    6         name = "VeggiePizza";
    7     }
    8 
    9 }
     1 package com.jyu.store;
     2 
     3 import com.jyu.factory.SimplePizzaFactory;
     4 import com.jyu.pizza.Pizza;
     5 
     6 /**
     7  * 批萨店
     8  * @author root
     9  *
    10  */
    11 public class PizzaStore {
    12 
    13     SimplePizzaFactory factory;
    14     
    15     public PizzaStore(SimplePizzaFactory factory){
    16         this.factory = factory;
    17     }
    18     
    19     public Pizza orderPizza(String type){
    20         Pizza pizza;
    21         
    22         pizza = factory.createPizza(type);
    23         
    24         pizza.prepare();
    25         pizza.bake();
    26         pizza.cut();
    27         pizza.box();
    28         
    29         return pizza;
    30     }
    31 }
     1 package com.jyu.factory;
     2 
     3 import com.jyu.pizza.CheesePizza;
     4 import com.jyu.pizza.ClamPizza;
     5 import com.jyu.pizza.PepperoniPizza;
     6 import com.jyu.pizza.Pizza;
     7 import com.jyu.pizza.VeggiePizza;
     8 
     9 /**
    10  * 简单批萨工厂
    11  * @author root
    12  *
    13  */
    14 public class SimplePizzaFactory {
    15 
    16     public Pizza createPizza(String type){
    17         Pizza pizza = null;
    18         
    19         if(type.equals("cheese")){
    20             pizza = new CheesePizza();
    21         }else if(type.equals("pepperoni")){
    22             pizza = new PepperoniPizza();
    23         }else if(type.equals("clam")){
    24             pizza = new ClamPizza();
    25         }else if(type.equals("veggie")){
    26             pizza = new VeggiePizza();
    27         }
    28         return pizza;
    29     }
    30 }
     1 package com.jyu.test;
     2 
     3 import com.jyu.factory.SimplePizzaFactory;
     4 import com.jyu.store.PizzaStore;
     5 
     6 public class TestSimpleFactory {
     7 
     8     /**
     9      * @param args
    10      */
    11     public static void main(String[] args) {
    12         
    13         SimplePizzaFactory factory = new SimplePizzaFactory();
    14         
    15         PizzaStore pizzaStore = new PizzaStore(factory);
    16         
    17         pizzaStore.orderPizza("cheese");
    18     }
    19 
    20 }
  • 相关阅读:
    方向余弦阵,欧拉角,四元数
    贝叶斯公式理解
    mysql安装错误解决办法
    arduino 配置 esp8266
    决策树的python实现
    ppt罗列项排版
    ★-原创性说明-★
    【通知】即日起重启技术博客
    第一篇:你不一定了解的"推荐系统"
    第十篇:K均值聚类(KMeans)
  • 原文地址:https://www.cnblogs.com/damonhuang/p/2688978.html
Copyright © 2011-2022 走看看