Skip to content

Commit 7167f56

Browse files
committed
Ingredients and ingredient Factories
1 parent e27fbfd commit 7167f56

File tree

3 files changed

+163
-0
lines changed

3 files changed

+163
-0
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
java/
2+
13
# Byte-compiled / optimized / DLL files
24
__pycache__/
35
*.py[cod]

.vscode/settings.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"python.formatting.provider": "black"
3+
}
+158
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
import abc
2+
3+
4+
class Cheese(abc.ABC):
5+
def __str__(self):
6+
raise NotImplementedError
7+
8+
9+
class MozzarellaCheese(Cheese):
10+
def __str__(self):
11+
return "Shredded Mozzarella"
12+
13+
14+
class ReggianoCheese(Cheese):
15+
def __str__(self):
16+
return "Reggiano Cheese"
17+
18+
19+
class Dough(abc.ABC):
20+
def __str__(self):
21+
raise NotImplementedError
22+
23+
24+
class ThickCrustDough(Dough):
25+
def __str__(self):
26+
return "ThickCrust style extra thick crust dough"
27+
28+
29+
class ThinCrustDough(Dough):
30+
def __str__(self):
31+
return "Thin Crust Dough"
32+
33+
34+
class Clams(abc.ABC):
35+
def __str__(self):
36+
raise NotImplementedError
37+
38+
39+
class FreshClams(Clams):
40+
def __str__self():
41+
return "Fresh Clams from Long Island Sound"
42+
43+
44+
class FrozenClams(Clams):
45+
def __str__(self):
46+
return "Frozen Clams from Chesapeake Bay"
47+
48+
49+
class Sauce(abc.ABC):
50+
def __str__(self):
51+
raise NotImplementedError
52+
53+
54+
class MarinaraSauce(Sauce):
55+
def __str__(self):
56+
return "Marinara Sauce"
57+
58+
59+
class PlumTomatoSauce(Sauce):
60+
def __str__(self):
61+
return "Tomato sauce with plum tomatoes"
62+
63+
64+
class Veggies(abc.ABC):
65+
def __str__(self):
66+
raise NotImplementedError
67+
68+
69+
class Spinach(Veggies):
70+
def __str__(self):
71+
return "Spinach"
72+
73+
74+
class BlackOlives(Veggies):
75+
def __str__(self):
76+
return "Black Olives"
77+
78+
79+
class Eggplant(Veggies):
80+
def __str__(self):
81+
return "Eggplant"
82+
83+
84+
class Garlic(Veggies):
85+
def __str__(self):
86+
return "Garlic"
87+
88+
89+
class Mushroom(Veggies):
90+
def __str__(self):
91+
return "Mushrooms"
92+
93+
94+
class Onion(Veggies):
95+
def __str__(self):
96+
return "Onion"
97+
98+
99+
class RedPepper(Veggies):
100+
def __str__(self):
101+
return "Red Pepper"
102+
103+
104+
class Pepperoni(abc.ABC):
105+
def __str__(self) -> str:
106+
raise NotImplementedError
107+
108+
109+
class SlicedPepperoni(Pepperoni):
110+
def __str__(self) -> str:
111+
return "Sliced Pepperoni"
112+
113+
114+
class PizzaIngredientFactory(abc.ABC):
115+
def create_dough():
116+
raise NotImplementedError
117+
def create_sauce():
118+
raise NotImplementedError
119+
def create_cheese():
120+
raise NotImplementedError
121+
def create_veggies():
122+
raise NotImplementedError
123+
def create_pepperoni():
124+
raise NotImplementedError
125+
def create_clam():
126+
raise NotImplementedError
127+
128+
129+
class ChicagoPizzaIngredientFactory(PizzaIngredientFactory):
130+
def create_dough():
131+
return ThickCrustDough()
132+
def create_sauce():
133+
return PlumTomatoSauce()
134+
def create_cheese():
135+
return MozzarellaCheese()
136+
def create_veggies():
137+
return[BlackOlives(), Spinach(), Eggplant()]
138+
def create_pepperoni():
139+
return SlicedPepperoni()
140+
def create_clam():
141+
return FrozenClams()
142+
143+
144+
class NYPizzaIngredientFactory(PizzaIngredientFactory):
145+
def create_dough():
146+
return ThinCrustDough()
147+
def create_sauce():
148+
return MarinaraSauce()
149+
def create_cheese():
150+
return ReggianoCheese()
151+
def create_veggies():
152+
return[Garlic(), Onion(), Mushroom(), RedPepper()]
153+
def create_pepperoni():
154+
return SlicedPepperoni()
155+
def create_clam():
156+
return FreshClams()
157+
158+

0 commit comments

Comments
 (0)