Golang設計模式 工廠模式

2021-10-01 10:24:38 字數 1648 閱讀 9200

定義乙個用於建立物件的介面,讓子類界定例項化哪個類。工廠方法使乙個類的例項化延遲到子類。

簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶的選擇動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。如果是翻譯,讓客戶端不管用哪個類的例項,只需把翻譯型別(int  1,2,3)給工廠,工廠自動給出了相應的例項,客戶只管去執行,不同的例項會實現不同的翻譯結果。但如果要加乙個新的翻譯語言,我們就要在運算工廠裡的方法加『case』分支條件的,修改原有的類,相當於我們不但對擴充套件開放對修改也開放了,違反了「開放-封閉原則」。

}根據依賴倒置原則,我們把工廠類抽象出乙個介面,這個介面只有乙個方法,就是建立抽象產品的工廠方法。然後,所有的要生產具體類的工廠,就要去實現這個介面。這樣乙個簡單工廠的工廠類,變成乙個工廠抽象介面和多個具體生產物件的工廠,於是我們要增加乙個新的邏輯運算,就不需要更改原來的工廠類了,只需要增加此功能的運算類和對應的工廠類就可以了。

設計模式golang 工廠模式

建立物件的介面,讓其子類自己決定例項化哪個類,工廠模式使其建立過程延遲到子類進行。1.產品抽象介面 2.工廠建立產品方法 3.產品例項 選銀行借錢的例子,資質方法根據你的收入等其他情況給你選擇銀行。抽象產品介面 type bank inte ce 具體銀行產品例項 type bjbank struc...

Golang設計模式 簡單工廠模式

簡單工廠模式 factory pattern 又稱為靜態工廠方法 static factory method 模式,它屬於類建立型模式。在簡單工廠模式中,可以根據引數的不同返回不同類的例項。簡單工廠模式專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。簡單工廠模式包含如下角色 ...

Golang 工廠模式

golang 工廠模式 golang 的結構體沒有建構函式,通常可以使用工廠模式來解決這個問題。看乙個需求 乙個結構體的宣告是這樣的 package model type student struct 因為這裡的student 的首字母s 是大寫的,如果我們想在其它包建立 student 的例項 比...