01,有一类小实体是形状(Shape),包含矩形(Rectangle)、圆形(Circle)等,请使用工厂方法模式(FactoryMethod)实现该要求
时间: 2023-11-06 08:05:42 浏览: 97
好的,针对您的问题,我可以给出以下的示例代码:
首先,我们需要定义一个抽象的 Shape 类,以及它的子类 Rectangle 和 Circle:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def draw(self):
pass
class Rectangle(Shape):
def draw(self):
print("Drawing a rectangle.")
class Circle(Shape):
def draw(self):
print("Drawing a circle.")
```
接下来,我们可以定义一个工厂方法模式的 Creator 类,用来创建 Shape 的实例:
```python
class Creator(ABC):
@abstractmethod
def create_shape(self):
pass
class RectangleCreator(Creator):
def create_shape(self):
return Rectangle()
class CircleCreator(Creator):
def create_shape(self):
return Circle()
```
最后,我们可以在客户端代码中使用 Creator 来创建 Shape 的实例:
```python
if __name__ == '__main__':
rectangle_creator = RectangleCreator()
rectangle = rectangle_creator.create_shape()
rectangle.draw()
circle_creator = CircleCreator()
circle = circle_creator.create_shape()
circle.draw()
```
运行上述代码,可以得到以下输出:
```
Drawing a rectangle.
Drawing a circle.
```
这样,我们就成功地使用工厂方法模式实现了小实体 Shape 的创建。
阅读全文