diff --git a/src/pizzeria/PizzaStore.java b/src/pizzeria/PizzaStore.java index 4aa035e7b83d48de2fb2c1aaa7d89b0a79cb949e..a43b5f73e219a60b3f5c394005a1cdcde14d4fc4 100644 --- a/src/pizzeria/PizzaStore.java +++ b/src/pizzeria/PizzaStore.java @@ -1,21 +1,16 @@ package pizzeria; public class PizzaStore { + SimplePizzaFactory factory; + + public PizzaStore(SimplePizzaFactory factory) { + this.factory = factory; + } public Pizza orderPizza(String type) { - Pizza pizza = null; - - if (type.equals("cheese")) { - pizza = new CheesePizza(); - } else if (type.equals("pepperoni")) { - pizza = new PepperoniPizza(); - } else if (type.equals("clam")) { - pizza = new ClamPizza(); - } else if (type.equals("veggie")) { - pizza = new VeggiePizza(); - } else { - return pizza; - } + Pizza pizza; + + pizza = factory.createPizza(type); pizza.prepare(); pizza.bake(); @@ -25,4 +20,27 @@ public class PizzaStore { return pizza; } + public Pizza orderPizza() { + Pizza pizza; + + pizza = factory.createPizza(); + pizza.prepare(); + pizza.bake(); + pizza.cut(); + pizza.box(); + + return pizza; + } + + public Pizza orderPepperoniPizza() { + Pizza pizza; + + pizza = factory.createPepperoniPizza(); + pizza.prepare(); + pizza.bake(); + pizza.cut(); + pizza.box(); + + return pizza; + } } diff --git a/src/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java index 6dae385569139ad6f33f03f813b439f37c563006..ae283e04fd9f26c07ba9d41c0c9beffce25a96ae 100644 --- a/src/pizzeria/PizzaTestDrive.java +++ b/src/pizzeria/PizzaTestDrive.java @@ -3,7 +3,8 @@ package pizzeria; public class PizzaTestDrive { public static void main(String[] args) { - PizzaStore store = new PizzaStore(); + SimplePizzaFactory factory = new SimplePizzaFactory(); + PizzaStore store = new PizzaStore(factory); Pizza pizza = store.orderPizza("cheese"); System.out.println("We ordered a " + pizza.getName() + "\n"); @@ -11,6 +12,11 @@ public class PizzaTestDrive { pizza = store.orderPizza("veggie"); System.out.println("We ordered a " + pizza.getName() + "\n"); - System.out.println(new PizzaStore().orderPizza("pepperoni").toString()); + pizza = store.orderPepperoniPizza(); + System.out.println("We ordered a " + pizza.getName() + "\n"); + + pizza = store.orderPizza(); + System.out.println("We ordered a " + pizza.getName() + "\n"); + } } diff --git a/src/pizzeria/SimplePizzaFactory.java b/src/pizzeria/SimplePizzaFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..22bbec1103c58f1f397b9ca50ed3b95d6c7c644e --- /dev/null +++ b/src/pizzeria/SimplePizzaFactory.java @@ -0,0 +1,28 @@ +package pizzeria; + +public class SimplePizzaFactory { + + public Pizza createPizza(String type) { + Pizza pizza = null; + + if (type.equals("cheese")) { + pizza = new CheesePizza(); + } else if (type.equals("pepperoni")) { + pizza = new PepperoniPizza(); + } else if (type.equals("clam")) { + pizza = new ClamPizza(); + } else if (type.equals("veggie")) { + pizza = new VeggiePizza(); + } + return pizza; + } + + public Pizza createPizza() { + return new CheesePizza(); + } + + public Pizza createPepperoniPizza() { + return new PepperoniPizza(); + } +} +