標籤:執行者 實現 coding factory 封裝對象 border 串連 ges 使用
Factory 方法模式(Factory Method Pattern):定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類,Factory 方法使一個類的執行個體化延時到其子類.
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 __author__ = ‘Andy‘ 5 6 """ 7 大話設計模式 8 設計模式——Factory 方法模式 9 Factory 方法模式(Factory Method Pattern):定義一個用於建立對象的介面,讓子類決定執行個體化哪一個類,Factory 方法使一個類的執行個體化延時到其子類.10 Factory 方法模式克服了簡單原廠模式違背開放-封閉原則的缺點,又保持了封裝對象建立過程的優點11 情境:雷鋒工廠,不關心執行者,只關心執行結果12 """13 14 class LeiFeng(object):15 16 def Sweep(self):17 print "掃地"18 19 def Wash(self):20 print "洗衣"21 22 def BuyRice(self):23 print "買米"24 25 26 class IFactory(LeiFeng):27 28 def CreateLeiFeng(self):29 pass30 31 #大學生32 class Undergraduate(LeiFeng):33 pass34 35 #新增社區服務者36 class Volunteer(LeiFeng):37 pass38 39 # 學習雷鋒的大學生工廠40 class UndergraduateFactory(IFactory):41 42 def CreateLeiFeng(self):43 return Undergraduate()44 45 #新增一個社區服務者的工廠e46 class VolunteerFactory(IFactory):47 48 def CreateLeiFeng(self):49 return Volunteer()50 51 52 if __name__ == "__main__":53 student = UndergraduateFactory()54 volunteer = VolunteerFactory()55 student.BuyRice()56 student.Sweep()57 volunteer.Wash()
上面類的設計如:
建立一個抽象工廠類CreateLeiFeng和一個抽象對象類LeiFeng,當建立具體leifeng對象-Undergradiate去dosomething時,使用繼承抽象工廠的UndergraduateFactory工廠類,該類返回一個Undergradiate執行個體,如果還要去做另一個dosomething時,再建立一個VolunteerFactoryFactory 方法建立建立一個Volunteer執行個體就可以了
Andy
出處:http://www.cnblogs.com/onepiece-andy/
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。
大話涉及模式Python實現-Factory 方法模式