Python設計模式之工廠方法模式實例詳解
本文實例講述了Python設計模式之工廠方法模式。分享給大家供大家參考,具體如下:
工廠方法模式(Factory Method Pattern):定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延時到其子類.
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大話設計模式 設計模式——工廠方法模式 工廠方法模式(Factory Method Pattern):定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延時到其子類. 工廠方法模式克服了簡單工廠模式違背開放-封閉原則的缺點,又保持了封裝對象創(chuàng)建過程的優(yōu)點 場景:雷鋒工廠,不關心執(zhí)行者,只關心執(zhí)行結果 """ class LeiFeng(object): def Sweep(self): print "掃地" def Wash(self): print "洗衣" def BuyRice(self): print "買米" class IFactory(LeiFeng): def CreateLeiFeng(self): pass #大學生 class Undergraduate(LeiFeng): pass #新增社區(qū)服務者 class Volunteer(LeiFeng): pass # 學習雷鋒的大學生工廠 class UndergraduateFactory(IFactory): def CreateLeiFeng(self): return Undergraduate() #新增一個社區(qū)服務者的工廠e class VolunteerFactory(IFactory): def CreateLeiFeng(self): return Volunteer() if __name__ == "__main__": student = UndergraduateFactory() volunteer = VolunteerFactory() student.BuyRice() student.Sweep() volunteer.Wash()
運行結果:
買米
掃地
洗衣
上面類的設計如下圖:
創(chuàng)建一個抽象工廠類CreateLeiFeng和一個抽象對象類LeiFeng,當創(chuàng)建具體leifeng對象-Undergradiate去dosomething時,使用繼承抽象工廠的UndergraduateFactory工廠類,該類返回一個Undergradiate實例,如果還要去做另一個dosomething時,再創(chuàng)建一個VolunteerFactory工廠方法創(chuàng)建創(chuàng)建一個Volunteer實例就可以了
更多關于Python相關內容可查看本站專題:《Python數(shù)據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Django admin實現(xiàn)TextField字段changelist頁面換行、空格正常顯示
本文主要介紹了Django admin實現(xiàn)TextField字段changelist頁面換行、空格正常顯示,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01pycharm2022.2遠程連接服務器調試代碼實現(xiàn)
本文主要介紹了pycharm2022.2遠程連接服務器調試代碼實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02Python中print和return的作用及區(qū)別解析
print的作用是輸出數(shù)據到控制端,就是打印在你能看到的界面上。這篇文章給大家介紹Python中print和return的作用及區(qū)別解析,感興趣的朋友跟隨小編一起看看吧2019-05-05