Skip to content

Commit 02f04ee

Browse files
committed
working through Pizza abstract factory stuff (java)
1 parent 720f381 commit 02f04ee

13 files changed

Lines changed: 182 additions & 120 deletions

my-java/src/headfirst/factory/pizzaaf/ChicagoPizzaStore.java

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,19 @@
22

33
public class ChicagoPizzaStore extends PizzaStore {
44

5-
protected Pizza createPizza(String item) {
5+
protected Pizza createPizza(String type) {
66
Pizza pizza = null;
7-
PizzaIngredientFactory ingredientFactory =
8-
new ChicagoPizzaIngredientFactory();
9-
10-
if (item.equals("cheese")) {
11-
12-
pizza = new CheesePizza(ingredientFactory);
13-
pizza.setName("Chicago Style Cheese Pizza");
14-
15-
} else if (item.equals("veggie")) {
16-
17-
pizza = new VeggiePizza(ingredientFactory);
18-
pizza.setName("Chicago Style Veggie Pizza");
19-
20-
} else if (item.equals("clam")) {
21-
22-
pizza = new ClamPizza(ingredientFactory);
23-
pizza.setName("Chicago Style Clam Pizza");
24-
25-
} else if (item.equals("pepperoni")) {
26-
27-
pizza = new PepperoniPizza(ingredientFactory);
28-
pizza.setName("Chicago Style Pepperoni Pizza");
297

8+
if (type.equals("cheese")) {
9+
pizza = new ChicagoStyleCheesePizza();
10+
} else if (type.equals("pepperoni")) {
11+
pizza = new ChicagoStylePepperoniPizza();
12+
} else if (type.equals("clam")) {
13+
pizza = new ChicagoStyleClamPizza();
14+
} else if (type.equals("veggie")) {
15+
pizza = new ChicagoStyleVeggiePizza();
3016
}
17+
3118
return pizza;
3219
}
3320
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package headfirst.factory.pizzaaf;
2+
3+
4+
public class ChicagoStyleCheesePizza extends Pizza {
5+
6+
public ChicagoStyleCheesePizza() {
7+
name = "Chicago Style Deep Dish Cheese Pizza";
8+
dough = "Extra Thick Crust Dough";
9+
sauce = "Plum Tomato Sauce";
10+
11+
toppings.add("Shredded Mozzarella Cheese");
12+
}
13+
14+
void cut() {
15+
info("Cutting the pizza into square slices");
16+
}
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package headfirst.factory.pizzaaf;
2+
3+
4+
public class ChicagoStyleClamPizza extends Pizza {
5+
6+
public ChicagoStyleClamPizza() {
7+
name = "Chicago Style Deep Dish Cheese Pizza";
8+
dough = "Extra Thick Crust Dough";
9+
sauce = "Plum Tomato Sauce";
10+
11+
toppings.add("Shredded Mozzarella Cheese");
12+
toppings.add("Clams");
13+
}
14+
15+
void cut() {
16+
info("Cutting the pizza into square slices");
17+
}
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package headfirst.factory.pizzaaf;
2+
3+
4+
public class ChicagoStylePepperoniPizza extends Pizza {
5+
6+
public ChicagoStylePepperoniPizza() {
7+
name = "Chicago Style Deep Dish Cheese Pizza";
8+
dough = "Extra Thick Crust Dough";
9+
sauce = "Plum Tomato Sauce";
10+
11+
toppings.add("Shredded Mozzarella Cheese");
12+
toppings.add("Pepperoni");
13+
}
14+
15+
void cut() {
16+
info("Cutting the pizza into square slices");
17+
}
18+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package headfirst.factory.pizzaaf;
2+
3+
4+
public class ChicagoStyleVeggiePizza extends Pizza {
5+
6+
public ChicagoStyleVeggiePizza() {
7+
name = "Chicago Style Deep Dish Cheese Pizza";
8+
dough = "Extra Thick Crust Dough";
9+
sauce = "Plum Tomato Sauce";
10+
11+
toppings.add("Shredded Mozzarella Cheese");
12+
toppings.add("Peppers");
13+
toppings.add("Onions");
14+
toppings.add("Spinach");
15+
}
16+
17+
void cut() {
18+
info("Cutting the pizza into square slices");
19+
}
20+
}

my-java/src/headfirst/factory/pizzaaf/NYPizzaStore.java

Lines changed: 13 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,21 @@
22

33
public class NYPizzaStore extends PizzaStore {
44

5-
protected Pizza createPizza(String item) {
5+
public Pizza createPizza(String type) {
66
Pizza pizza = null;
7-
PizzaIngredientFactory ingredientFactory =
8-
new NYPizzaIngredientFactory();
9-
10-
if (item.equals("cheese")) {
11-
12-
pizza = new CheesePizza(ingredientFactory);
13-
pizza.setName("New York Style Cheese Pizza");
14-
15-
} else if (item.equals("veggie")) {
16-
17-
pizza = new VeggiePizza(ingredientFactory);
18-
pizza.setName("New York Style Veggie Pizza");
19-
20-
} else if (item.equals("clam")) {
21-
22-
pizza = new ClamPizza(ingredientFactory);
23-
pizza.setName("New York Style Clam Pizza");
24-
25-
} else if (item.equals("pepperoni")) {
267

27-
pizza = new PepperoniPizza(ingredientFactory);
28-
pizza.setName("New York Style Pepperoni Pizza");
29-
30-
}
8+
if (type.equals("cheese")) {
9+
pizza = new NYStyleCheesePizza();
10+
} else if (type.equals("pepperoni")) {
11+
pizza = new NYStylePepperoniPizza();
12+
} else if (type.equals("clam")) {
13+
pizza = new NYStyleClamPizza();
14+
} else if (type.equals("veggie")) {
15+
pizza = new NYStyleVeggiePizza();
16+
} else {
17+
throw new Error();
18+
}
19+
3120
return pizza;
3221
}
3322
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package headfirst.factory.pizzaaf;
2+
3+
4+
public class NYStyleCheesePizza extends Pizza {
5+
6+
public void NYStyleCheesePizza() {
7+
name = "NY Style Sauce and Cheese Pizza";
8+
dough = "Thin Crust Dough";
9+
sauce = "Marinara Sauce";
10+
11+
toppings.add("Grated Reggiano Cheese");
12+
}
13+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package headfirst.factory.pizzaaf;
2+
3+
4+
public class NYStyleClamPizza extends Pizza {
5+
6+
public NYStyleClamPizza() {
7+
name = "NY Style Clam Pizza";
8+
dough = "Thin Crust Dough";
9+
sauce = "Marinara Sauce";
10+
11+
toppings.add("Grated Reggiano Cheese");
12+
toppings.add("Clams");
13+
}
14+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package headfirst.factory.pizzaaf;
2+
3+
4+
public class NYStylePepperoniPizza extends Pizza {
5+
6+
public NYStylePepperoniPizza() {
7+
name = "NY Style Pepperoni Pizza";
8+
dough = "Thin Crust Dough";
9+
sauce = "Marinara Sauce";
10+
11+
toppings.add("Grated Reggiano Cheese");
12+
toppings.add("Pepperoni");
13+
}
14+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package headfirst.factory.pizzaaf;
2+
3+
4+
public class NYStyleVeggiePizza extends Pizza {
5+
6+
public NYStyleVeggiePizza() {
7+
name = "NY Style Veggie Pizza";
8+
dough = "Thin Crust Dough";
9+
sauce = "Marinara Sauce";
10+
11+
toppings.add("Grated Reggiano Cheese");
12+
toppings.add("Peppers");
13+
toppings.add("Onions");
14+
toppings.add("Spinach");
15+
}
16+
}

0 commit comments

Comments
 (0)