,主要是实现一个工厂函数,用于根据传入的参数创建不同的对象,以下是一个简单的实现代码示例:
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方法,以实现工厂模式。
使用方法
- 定义一个基类,它有一个或多个抽象方法;
- 定义一些子类,它们都继承自基类,并实现了基类的抽象方法;
- 定义一个工厂函数,它根据传入的参数,返回不同的子类对象,从而实现工厂模式。