大話涉及模式Python實現-Factory 方法模式

來源:互聯網
上載者:User

標籤:執行者   實現   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 方法模式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.