工厂模式Python实现

class Shape:
    def draw(self):
        pass

class Rectangle(Shape):
    def draw(self):
        print("Drawing a rectangle")

class Circle(Shape):
    def draw(self):
        print("Drawing a circle")

class ShapeFactory:
    @classmethod
    def create_shape(cls, shape_type):
        if shape_type == 'rectangle':
            return Rectangle()
        elif shape_type == 'circle':
            return Circle()
        else:
            raise ValueError("Invalid shape type")

if __name__ == '__main__':
    rectangle = ShapeFactory.create_shape('rectangle')
    rectangle.draw()

    circle = ShapeFactory.create_shape('circle')
    circle.draw()

 

在上面的代码中,我们定义了一个Shape基类和两个具体的子类RectangleCircle。然后我们定义了一个ShapeFactory工厂类,它定义了一个类方法create_shape,根据传入的参数不同分别创建不同的对象

最后,我们在主函数中使用ShapeFactory工厂类创建了一个Rectangle对象和一个Circle对象,并调用了它们的draw方法

 

 

posted @ 2023-04-05 14:52  SuperCodeX  阅读(18)  评论(0编辑  收藏  举报