Python設(shè)計(jì)模式之抽象工廠模式
python面向?qū)ο缶幊倘腴T,我們需要不斷學(xué)習(xí)進(jìn)步
"""抽象工廠模式的實(shí)現(xiàn)"""
import random class PetShop: """寵物商店""" def __init__(self, animal_factory=None): """寵物工廠是我們的抽象工廠。我們可以隨意設(shè)置。""" self.pet_factory = animal_factory def show_pet(self): """使用抽象工廠創(chuàng)建并顯示一個(gè)寵物""" pet = self.pet_factory.get_pet() print("我們有一個(gè)可愛的 {}".format(pet)) print("它說(shuō) {}".format(pet.speak())) print("我們還有 {}".format(self.pet_factory.get_food())) # 工廠生產(chǎn)的事物 class Dog: def speak(self): return "汪" def __str__(self): return "Dog" class Cat: def speak(self): return "喵" def __str__(self): return "Cat" # Factory classes class DogFactory: def get_pet(self): return Dog() def get_food(self): return "狗食" class CatFactory: def get_pet(self): return Cat() def get_food(self): return "貓糧" # 隨機(jī)創(chuàng)建合適的工廠 def get_factory(): """讓我們動(dòng)起來(lái)!""" return random.choice([DogFactory, CatFactory])() # 多個(gè)工廠顯示寵物 if __name__ == "__main__": for i in range(4): shop = PetShop(get_factory()) shop.show_pet() print("=" * 20)
結(jié)果如圖:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)替換word中的關(guān)鍵文字(使用通配符)
今天小編就為大家分享一篇python實(shí)現(xiàn)替換word中的關(guān)鍵文字(使用通配符),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02利用Python開發(fā)微信支付的注意事項(xiàng)
如今支付的引入是很多互聯(lián)網(wǎng)產(chǎn)品都需要的。為了讓用戶用著更方便快捷,集成像支付寶、微信支付這樣的第三方支付也就成了常有的事。今天跟著小編就來(lái)看看微信支付開發(fā)中幾個(gè)值得注意的地方,涉及代碼之處均用 Python 編寫。2016-08-08Python模擬簡(jiǎn)單電梯調(diào)度算法示例
這篇文章主要介紹了Python模擬簡(jiǎn)單電梯調(diào)度算法,涉及Python線程、隊(duì)列、時(shí)間延遲等相關(guān)操作技巧,需要的朋友可以參考下2018-08-08python實(shí)現(xiàn)啟動(dòng)一個(gè)外部程序,并且不阻塞當(dāng)前進(jìn)程
這篇文章主要介紹了python實(shí)現(xiàn)啟動(dòng)一個(gè)外部程序,并且不阻塞當(dāng)前進(jìn)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹的高效且可擴(kuò)展實(shí)現(xiàn)
這篇文章主要為大家介紹了python機(jī)器學(xué)習(xí)XGBoost梯度提升決策樹的高效且可擴(kuò)展實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01