專業版:
簡單工廠模式是乙個小工廠,工廠方法模式是乙個園區,抽象工廠模式是乙個區,如某城市的高新區,在這個高新區中有很多園區,其中有軟體園,工業園等等,高新區作為最高端別的工廠類,我們把它叫做超級工廠,我們把其中的園區叫做普通工廠。
直接看**吧!
# 先看軟體園
class
softwarecompany
:def
develop_software
(self)
:pass
# 開發遊戲的公司
class
game
(softwarecompany)
:def
develop_software
(self)
:print
('開發遊戲'
)# 開發社交軟體的公司
class
socialsoftware
(softwarecompany)
:def
develop_software
(self)
:print
('開發社交軟體'
)
# 工業園
class
industrycompany
:def
create_product
(self)
:pass
# numerical control 數控工具機
class
numericalcontrol
(industrycompany)
:def
create_product
(self)
:print
('製作數控工具機'
)# mobile phone 手機
class
mobilephone
(industrycompany)
:def
create_product
(self)
:print
("製作手機"
)
# 寫出軟體園類和工業園類的工廠類
class
ifactory
:def
create
(self, name)
:pass
# 軟體園工廠類
class
softwarefactory
(ifactory)
:def
create
(self, name)
:if name ==
'game'
:return game(
)elif name ==
'socialsoftware'
:return socialsoftware(
)else
:return
none
# 工業園工廠類
class
industrycompany
(ifactory)
:def
create
(self, name)
:if name ==
'numericalcontrol'
:return numericalcontrol(
)elif name ==
'mobilephone'
:return mobilephone(
)else
:return
none
# 高新區/超級工廠
class
supe***ctory
:def
get_factory
(self, name)
:if name ==
'softwarefactory'
:return softwarefactory(
)elif name ==
'industrycompany'
:return industrycompany(
)else
:return
none
檢視效果
if __name__ ==
'__main__'
: game = supe***ctory(
).get_factory(
'softwarefactory'
).create(
'game'
).develop_software(
) socialsoftware = supe***ctory(
).get_factory(
'softwarefactory'
).create(
'socialsoftware'
).develop_software(
) numericalcontrol = supe***ctory(
).get_factory(
'industrycompany'
).create(
'numericalcontrol'
).create_product(
) mobilephone = supe***ctory(
).get_factory(
'industrycompany'
).create(
'mobilephone'
).create_product(
)結果:
開發遊戲
開發社交軟體
製作數控工具機
製作手機
說實話,這還是很複雜的,抽象的層數較高,看看就好了。 測試必認識的設計模式之工廠方法(函式)模式
專業版 工廠方法 函式 模式應用的場景和簡單工廠模式是一致的,只是工廠方法模式更符合開閉原則了。如果說簡單工廠模式是一家小工廠的話,那工廠方法模式就可以理解為乙個工業園區,工業園區中有很多企業,每個企業只生產自己的產品,但工業園區中的每個企業必須要遵守園區的規則 這是核心 工業園區就想簡單工廠模式中...
測試必認識的設計模式之單例模式
學習乙個知識,首先要知道它是做什麼的,它的應用場景是什麼。程式設計領域的設計模式對於開發大佬們應該很熟悉,但對於非測試開發來說基本用不到,但也不能不知道啊。設計模式 design pattern 代表了最佳的實踐,通常被有經驗的物件導向的軟體開發人員所採用。設計模式是軟體開發人員在軟體開發過程中面臨...
設計模式之工廠 抽象工廠
一 應用場景 工廠模式應用非常廣泛,意在抽象出一層專職管理物件產生以及物件間的關係,讓我們能夠專注於業務開發 1.不用去寫許許多多的new方法,替換實現類還得挨個修改。2.類中不涉及實現類,物件間只存在介面級別的耦合,客戶端呼叫注入實現類即可。由於工廠模式變種非常多,這裡只講一下常用的簡單工廠和抽象...