,主要是实现一个工厂函数,用于根据传入的参数创建不同的对象,以下是一个简单的实现代码示例:
class Shape(object):
def __init__(self):
pass
def draw(self):
pass
class Circle(Shape):
def __init__(self):
super(Circle, self).__init__()
self.name = 'Circle'
def draw(self):
print('draw a circle')
class Triangle(Shape):
def __init__(self):
super(Triangle, self).__init__()
self.name = 'Triangle'
def draw(self):
print('draw a triangle')
def shape_factory(shape_type):
if shape_type == 'Circle':
return Circle()
elif shape_type == 'Triangle':
return Triangle()
else:
return None
if __name__ == '__main__':
circle = shape_factory('Circle')
triangle = shape_factory('Triangle')
circle.draw()
triangle.draw()
上面的代码中,定义了一个基类Shape,它有一个draw方法,定义了两个子类Circle和Triangle,它们都继承自Shape类,并实现了draw方法,定义了一个工厂函数shape_factory,它根据传入的参数shape_type,返回不同的对象,在main函数中调用了shape_factory函数,分别创建了一个Circle对象和一个Triangle对象,并调用了它们的draw方法,以实现工厂模式。
使用方法
- 定义一个基类,它有一个或多个抽象方法;
- 定义一些子类,它们都继承自基类,并实现了基类的抽象方法;
- 定义一个工厂函数,它根据传入的参数,返回不同的子类对象,从而实现工厂模式。