Python程序设计模式

系统 1339 0

Python设计模式

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。 使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

所有的设计模式示例都是来源于 菜鸟教程 ,每个设计模式的UML都可以在菜鸟教程中找到相应的示例

github地址:Python设计模式

以工厂模式为例:

工厂模式在菜鸟教程中的UML图为
Python程序设计模式_第1张图片
工厂模式在github中的代码为:

            
              import abc

class Shape(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def draw(self):
        pass

class Circle(Shape):
    def draw(self):
        print("Inside Rectangle::draw() method.")

class Square(Shape):
    def draw(self):
        print("Inside Square::draw() method.")

class Rectangle(Shape):
    def draw(self):
        print("Inside Circle::draw() method.")

class ShapeFactory(object):
    def getShape(self, shapeType):
        if shapeType=="CIRCLE":
            return Circle()
        elif shapeType=="RECTANGLE":
            return Rectangle()
        elif shapeType=="SQUARE":
            return Square()
        else:
            return None

if __name__ == '__main__':
    '''
    工厂模式的优点:
    1. 一个调用者想创建一个对象,只要知道其名称
    2. 扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以
    3. 屏蔽产品的具体实现,调用者只关心产品的接口
    '''
    shapeFactory = ShapeFactory()
    # 获取Cicle、Rectangle、Square的对象
    shape1 = shapeFactory.getShape("CIRCLE")
    shape2 = shapeFactory.getShape("RECTANGLE")
    shape3 = shapeFactory.getShape("SQUARE")
    #分别调用draw()方法
    shape1.draw()
    shape2.draw()
    shape3.draw()

            
          

在main的注释部分我会给出该设计模式的优点,并且在main中给出该示例的客户端调用


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论