測試必認識的設計模式之抽象工廠模式

2021-10-05 04:16:44 字數 2863 閱讀 1033

專業版:

簡單工廠模式是乙個小工廠,工廠方法模式是乙個園區,抽象工廠模式是乙個區,如某城市的高新區,在這個高新區中有很多園區,其中有軟體園,工業園等等,高新區作為最高端別的工廠類,我們把它叫做超級工廠,我們把其中的園區叫做普通工廠。

直接看**吧!

#  先看軟體園

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.類中不涉及實現類,物件間只存在介面級別的耦合,客戶端呼叫注入實現類即可。由於工廠模式變種非常多,這裡只講一下常用的簡單工廠和抽象...