有一类小实体是形状(Shape),包含矩形 (Rectangle)、圆形(Circle)等,请使用工厂方法模式(FactoryMethod)实现该要求
时间: 2023-11-06 22:05:42 浏览: 94
好的,我了解了你的问题。以下是使用工厂方法模式实现形状实体的代码示例:
首先,我们定义一个抽象的 Shape 类,其中包含一个抽象方法 `draw`:
```python
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def draw(self):
pass
```
然后,我们定义具体的形状实体类,如矩形和圆形:
```python
class Rectangle(Shape):
def draw(self):
print("Inside Rectangle::draw() method.")
class Circle(Shape):
def draw(self):
print("Inside Circle::draw() method.")
```
接下来,我们定义一个工厂类 ShapeFactory,该类包含一个方法 `get_shape`,用于根据参数创建具体的形状实体:
```python
class ShapeFactory:
def get_shape(self, shape_type):
if shape_type == "RECTANGLE":
return Rectangle()
elif shape_type == "CIRCLE":
return Circle()
else:
return None
```
最后,我们可以使用 ShapeFactory 创建具体的形状实体:
```python
factory = ShapeFactory()
# 获取 Circle 的对象,并调用它的 draw 方法
circle = factory.get_shape("CIRCLE")
circle.draw()
# 获取 Rectangle 的对象,并调用它的 draw 方法
rectangle = factory.get_shape("RECTANGLE")
rectangle.draw()
```
输出结果为:
```
Inside Circle::draw() method.
Inside Rectangle::draw() method.
```
这样,我们就成功地使用工厂方法模式实现了形状实体的创建。
阅读全文