写出一个简单工厂模式示例
时间: 2023-06-23 10:50:13 浏览: 81
好的,下面是一个简单的工厂模式示例:
假设有一个披萨店,可以制作不同种类的披萨,例如芝士披萨、蘑菇披萨等等。我们可以使用简单工厂模式来创建这些披萨。
首先,我们需要创建一个披萨类,例如:
```python
class Pizza:
def prepare(self):
pass
def bake(self):
pass
def cut(self):
pass
def box(self):
pass
```
接下来,我们可以创建不同种类的披萨类,例如芝士披萨类和蘑菇披萨类:
```python
class CheesePizza(Pizza):
def prepare(self):
print("Preparing Cheese Pizza")
def bake(self):
print("Baking Cheese Pizza")
def cut(self):
print("Cutting Cheese Pizza")
def box(self):
print("Boxing Cheese Pizza")
class MushroomPizza(Pizza):
def prepare(self):
print("Preparing Mushroom Pizza")
def bake(self):
print("Baking Mushroom Pizza")
def cut(self):
print("Cutting Mushroom Pizza")
def box(self):
print("Boxing Mushroom Pizza")
```
然后,我们创建一个简单的披萨工厂类,用于根据不同的披萨类型创建披萨对象:
```python
class SimplePizzaFactory:
def create_pizza(self, pizza_type):
if pizza_type == "cheese":
return CheesePizza()
elif pizza_type == "mushroom":
return MushroomPizza()
else:
return None
```
最后,我们可以在披萨店中使用这个工厂类来制作披萨:
```python
class PizzaStore:
def __init__(self, factory):
self.factory = factory
def order_pizza(self, pizza_type):
pizza = self.factory.create_pizza(pizza_type)
if pizza:
pizza.prepare()
pizza.bake()
pizza.cut()
pizza.box()
else:
print("Sorry, we don't have this type of pizza.")
```
这样,我们就可以使用简单工厂模式来创建不同种类的披萨了。我们只需要在创建披萨店时指定使用哪个工厂,就可以根据工厂创建相应的披萨对象。
阅读全文