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


发表评论