Python設計模式
設計模式(Design Pattern)是一套被反復使用、多數人知曉的、經過分類的、代碼設計經驗的總結。 使用設計模式的目的:為了代碼可重用性、讓代碼更容易被他人理解、保證代碼可靠性。 設計模式使代碼編寫真正工程化;設計模式是軟件工程的基石脈絡,如同大廈的結構一樣。
所有的設計模式示例都是來源于 菜鳥教程 ,每個設計模式的UML都可以在菜鳥教程中找到相應的示例
github地址:Python設計模式
以工廠模式為例:
工廠模式在菜鳥教程中的UML圖為
工廠模式在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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
