代码
时间: 2023-07-02 07:19:59 浏览: 35
以下是一个基于 Python 的简单工厂方法模式的示例代码:
```
# 定义抽象图形类
class Shape:
def draw(self):
pass
# 定义具体图形类
class Circle(Shape):
def draw(self):
print("绘制圆形")
class Rectangle(Shape):
def draw(self):
print("绘制矩形")
class Triangle(Shape):
def draw(self):
print("绘制三角形")
# 定义抽象工厂类
class ShapeFactory:
def createShape(self):
pass
# 定义具体工厂类
class CircleFactory(ShapeFactory):
def createShape(self):
return Circle()
class RectangleFactory(ShapeFactory):
def createShape(self):
return Rectangle()
class TriangleFactory(ShapeFactory):
def createShape(self):
return Triangle()
# 客户端代码
if __name__ == '__main__':
circle_factory = CircleFactory()
circle = circle_factory.createShape()
circle.draw()
rectangle_factory = RectangleFactory()
rectangle = rectangle_factory.createShape()
rectangle.draw()
triangle_factory = TriangleFactory()
triangle = triangle_factory.createShape()
triangle.draw()
```
运行结果:
```
绘制圆形
绘制矩形
绘制三角形
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)