您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python設計模式之工廠方法模式的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
具體如下:
工廠方法模式(Factory Method Pattern):定義一個用于創建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延時到其子類.
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大話設計模式 設計模式——工廠方法模式 工廠方法模式(Factory Method Pattern):定義一個用于創建對象的接口,讓子類決定實例化哪一個類,工廠方法使一個類的實例化延時到其子類. 工廠方法模式克服了簡單工廠模式違背開放-封閉原則的缺點,又保持了封裝對象創建過程的優點 場景:雷鋒工廠,不關心執行者,只關心執行結果 """ 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 #新增社區服務者 class Volunteer(LeiFeng): pass # 學習雷鋒的大學生工廠 class UndergraduateFactory(IFactory): def CreateLeiFeng(self): return Undergraduate() #新增一個社區服務者的工廠e class VolunteerFactory(IFactory): def CreateLeiFeng(self): return Volunteer() if __name__ == "__main__": student = UndergraduateFactory() volunteer = VolunteerFactory() student.BuyRice() student.Sweep() volunteer.Wash()
運行結果:
買米
掃地
洗衣
上面類的設計如下圖:
創建一個抽象工廠類CreateLeiFeng和一個抽象對象類LeiFeng,當創建具體leifeng對象-Undergradiate去dosomething時,使用繼承抽象工廠的UndergraduateFactory工廠類,該類返回一個Undergradiate實例,如果還要去做另一個dosomething時,再創建一個VolunteerFactory工廠方法創建創建一個Volunteer實例就可以了。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python設計模式之工廠方法模式的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。