Golang 工廠模式

2022-06-23 02:51:11 字數 1023 閱讀 1391

golang-工廠模式

golang 的結構體沒有建構函式,通常可以使用工廠模式來解決這個問題。

看乙個需求

乙個結構體的宣告是這樣的: package model

type student struct 

因為這裡的student 的首字母s 是大寫的,如果我們想在其它包建立 student 的例項(比如main 包), 引入 model 包後,就可以直接建立 student 結構體的變數(例項)。但是問題來了,如果首字母是小寫的, 比如 是 type student struct  就不不行了,怎麼辦---> 工廠模式來解決.

工廠模式來解決問題

使用工廠模式實現跨包建立結構體例項(變數)的案例:

如果 model 包的 結構體變數首字母大寫,引入後,直接使用, 沒有問題

如果 model 包的

結構體變數首字母小寫,引入後,不能直接使用, 可以工廠模式解決,

看老師演示,

思考題同學們思考一下,如果 model 包的 student 的結構體的字段 score 改成 score,我們還能正常訪問嗎?又應該如何解決這個問題呢?[老師給出思路,學員自己完成]

解決方法如下:

golang 工廠模式與抽象工廠模式

定義乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。工廠模式算是乙個比較簡單的模式了,簡單理解就是,建立物件的工作交給工廠即可,客戶端不用關心物件怎麼來的,直接從工廠獲得即可,類似於spring 的ioc。工廠方法模式由抽象工廠 具體工廠 抽象產品和具體產品等4個要素構成...

Golang設計模式 工廠模式

定義乙個用於建立物件的介面,讓子類界定例項化哪個類。工廠方法使乙個類的例項化延遲到子類。簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶的選擇動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。如果是翻譯,讓客戶端不管用哪個類的例項,只需把翻譯型別 int 1,2,3 給工廠...

設計模式golang 工廠模式

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