写一个工厂模式的样例
时间: 2023-08-19 08:20:25 浏览: 107
工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,它使用工厂方法来解决对象的创建问题。下面是一个简单的工厂模式的样例:
假设我们要开发一个简单的图形绘制程序,程序需要能够绘制三种图形:矩形、圆形和三角形。我们可以使用工厂模式来创建这些图形对象,具体实现如下:
1. 首先,我们定义一个抽象的图形类 Shape,它有一个抽象的绘制方法 draw。
```python
class Shape:
def draw(self):
pass
```
2. 然后,我们定义三个具体的图形类 Rect、Circle 和 Triangle,它们都继承自 Shape 并实现了 draw 方法。
```python
class Rect(Shape):
def draw(self):
print("绘制矩形")
class Circle(Shape):
def draw(self):
print("绘制圆形")
class Triangle(Shape):
def draw(self):
print("绘制三角形")
```
3. 接下来,我们定义一个工厂类 ShapeFactory,它有一个静态方法 create_shape,用于创建具体的图形对象。该方法根据传入的参数不同,返回不同的图形对象。
```python
class ShapeFactory:
@staticmethod
def create_shape(shape_type):
if shape_type == "rect":
return Rect()
elif shape_type == "circle":
return Circle()
elif shape_type == "triangle":
return Triangle()
else:
return None
```
4. 最后,我们可以使用 ShapeFactory 来创建具体的图形对象,并调用其 draw 方法进行绘制。
```python
# 创建矩形对象并绘制
rect = ShapeFactory.create_shape("rect")
rect.draw()
# 创建圆形对象并绘制
circle = ShapeFactory.create_shape("circle")
circle.draw()
# 创建三角形对象并绘制
triangle = ShapeFactory.create_shape("triangle")
triangle.draw()
```
通过工厂模式,我们可以将对象的创建和使用分离,客户端只需要关心如何使用对象,而不需要关心对象的创建细节。这样可以提高代码的可维护性和可扩展性。
阅读全文