packagefactory.pizza;publicclassCheesePizzaextendsPizza{@Overridepublicvoidprepare(){// TODO Auto-generated method stubSystem.out.println("给制作CheesePizza准备原材料 ");}}
GreekPizza.java
java
1
2
3
4
5
6
7
8
9
10
11
packagefactory.pizza;publicclassGreekPizzaextendsPizza{@Overridepublicvoidprepare(){// TODO Auto-generated method stubSystem.out.println("给制作GreekPizza准备原材料");}}
packagefactory.pizza;publicclassChinesePizzaextendsPizza{@Overridepublicvoidprepare(){// TODO Auto-generated method stubSystem.out.println("给制作GreekPizza准备原材料");}}
publicclassPizzaStore{publicstaticvoidmain(String[]args){// new OrderPizza();//使用简单工厂模式// new OrderPizza(new SimpleFactory());//使用静态工厂模式,其实也是简单工厂,只不过方法是静态的newOrderPizza2();System.out.println("退出程序,爱你么么哒❤❤");}}
packagefactory.factoryMethod.pizzaStore.pizza;publicclassBJCheesePizzaextendsPizza{@Overridepublicvoidprepare(){// TODO Auto-generated method stubsetName("BJCheesePizza");System.out.println("BJCheesePizza准备原材料");}}
BJPepperPizza.java
java
1
2
3
4
5
6
7
8
9
10
11
12
packagefactory.factoryMethod.pizzaStore.pizza;publicclassBJPepperPizzaextendsPizza{@Overridepublicvoidprepare(){// TODO Auto-generated method stubsetName("BJPepperPizza");System.out.println("BJPepperPizza准备原材料");}}
LDCheesePizza.java
java
1
2
3
4
5
6
7
8
9
10
11
12
packagefactory.factoryMethod.pizzaStore.pizza;publicclassLDCheesePizzaextendsPizza{@Overridepublicvoidprepare(){// TODO Auto-generated method stubsetName("LDCheesePizza");System.out.println("LDCheesePizza准备原材料");}}
LDPepperPizza.java
java
1
2
3
4
5
6
7
8
9
10
11
12
packagefactory.factoryMethod.pizzaStore.pizza;publicclassLDPepperPizzaextendsPizza{@Overridepublicvoidprepare(){// TODO Auto-generated method stubsetName("LDPepperPizza");System.out.println("LDPepperPizza准备原材料");}}
packagefactory.factoryMethod.pizzaStore.order;importfactory.factoryMethod.pizzaStore.pizza.BJCheesePizza;importfactory.factoryMethod.pizzaStore.pizza.BJPepperPizza;importfactory.factoryMethod.pizzaStore.pizza.Pizza;publicclassBJOrderPizzaextendsOrderPizza{@OverridePizzacreatePizza(StringorderType){// TODO Auto-generated method stubPizzapizza=null;if(orderType.equals("cheese")){pizza=newBJCheesePizza();}elseif(orderType.equals("pepper")){pizza=newBJPepperPizza();}returnpizza;}}
packagefactory.factoryMethod.pizzaStore.order;importfactory.factoryMethod.pizzaStore.pizza.LDCheesePizza;importfactory.factoryMethod.pizzaStore.pizza.LDPepperPizza;importfactory.factoryMethod.pizzaStore.pizza.Pizza;publicclassLDOrderPizzaextendsOrderPizza{@OverridePizzacreatePizza(StringorderType){// TODO Auto-generated method stubPizzapizza=null;if(orderType.equals("cheese")){pizza=newLDCheesePizza();}elseif(orderType.equals("pepper")){pizza=newLDPepperPizza();}returnpizza;}}
packagefactory.abstractFactory.pizzaStore.order;importfactory.abstractFactory.pizzaStore.pizza.BJCheesePizza;importfactory.abstractFactory.pizzaStore.pizza.BJPepperPizza;importfactory.abstractFactory.pizzaStore.pizza.Pizza;//这是一个工厂子类publicclassBJFactoryimplementsAbsFactory{@OverridepublicPizzacreatePizza(StringorderType){// TODO Auto-generated method stubPizzapizza=null;if(orderType.equals("cheese")){pizza=newBJCheesePizza();}elseif(orderType.equals("pepper")){pizza=newBJPepperPizza();}returnpizza;}}
packagefactory.abstractFactory.pizzaStore.order;importfactory.abstractFactory.pizzaStore.pizza.LDCheesePizza;importfactory.abstractFactory.pizzaStore.pizza.LDPepperPizza;importfactory.abstractFactory.pizzaStore.pizza.Pizza;publicclassLDFactoryimplementsAbsFactory{@OverridepublicPizzacreatePizza(StringorderType){// TODO Auto-generated method stubPizzapizza=null;if(orderType.equals("cheese")){pizza=newLDCheesePizza();}elseif(orderType.equals("pepper")){pizza=newLDPepperPizza();}returnpizza;}}
packagefactory.abstractFactory.pizzaStore.order;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassPizzaStore{publicstaticvoidmain(String[]args){BufferedReaderinput=newBufferedReader(newInputStreamReader(System.in));System.out.println("Please input pizza's location:Beijing or London");Stringloc;try{loc=input.readLine();}catch(IOExceptione){// TODO Auto-generated catch blocke.printStackTrace();loc="";}if(loc.equals("Beijing")){newOrderPizza().setAbsFactory(newBJFactory());}elseif(loc.equals("London")){newOrderPizza().setAbsFactory(newLDFactory());}System.out.println("欢迎下次使用,爱你么么哒❤❤");}}