admin管理员组文章数量:1026989
设计模式之四:简单工厂(披萨店生产披萨模拟流程)
简单工厂不是一个设计模式,只是一种变成习惯,常被误认为是“工厂模式”。(披萨店生产披萨模拟流程)
工程名称:SimpleFactory 下载目录:.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 }
转载于:.html
设计模式之四:简单工厂(披萨店生产披萨模拟流程)
简单工厂不是一个设计模式,只是一种变成习惯,常被误认为是“工厂模式”。(披萨店生产披萨模拟流程)
工程名称:SimpleFactory 下载目录:.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 }
转载于:.html
本文标签: 设计模式之四简单工厂(披萨店生产披萨模拟流程)
版权声明:本文标题:设计模式之四:简单工厂(披萨店生产披萨模拟流程) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://it.en369.cn/IT/1694674713a254913.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论