Golang設計模式 之工廠方法模式

2021-09-18 07:06:43 字數 996 閱讀 2097

工廠方法模式使用子類的方式延遲生成物件到子類中實現。

go中不存在繼承 所以使用匿名組合來實現

package factorymethod

//operator 是被封裝的實際類介面

type operator inte***ce

//operato***ctory 是工廠介面

type operato***ctory inte***ce

//operatorbase 是operator 介面實現的基類,封裝公用方法

type operatorbase struct

//seta 設定 a

func (o *operatorbase) seta(a int)

//setb 設定 b

func (o *operatorbase) setb(b int)

//plusoperato***ctory 是 plusoperator 的工廠類

type plusoperato***ctory struct{}

func (plusoperato***ctory) create() operator ,}}

//plusoperator operator 的實際加法實現

type plusoperator struct

//result 獲取結果

func (o plusoperator) result() int

//minusoperato***ctory 是 minusoperator 的工廠類

type minusoperato***ctory struct{}

func (minusoperato***ctory) create() operator ,}}

//minusoperator operator 的實際減法實現

type minusoperator struct

//result 獲取結果

func (o minusoperator) result() int

golang設計模式之工廠方法模式

簡單工廠模式是通過傳遞不同的引數生成不同的例項,缺點就是擴充套件不同的類別時需要修改 工廠方法模式為每乙個product提供乙個工程類,通過不同工廠建立不同例項。類圖 相關源 demo在github上,可供參考!type animalfactory inte ce type birdfactory ...

工廠模式之工廠方法(golang)

蘋果工廠 蘋果工廠 建立蘋果手機 華為工廠 type huaweifactory struct 華為工廠建立華為手機 func huaweifactory createphone phone 華為工廠 type xiaomifactory struct 華為工廠建立華為手機 func xiaomif...

Golang設計模式 01工廠方法模式

其他設計模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類 工廠方法克服了簡單工廠違背開放封閉原則的缺點,又保持了封裝物件建立過程的優點 乙個簡單工廠的工廠類,變成乙個工廠抽象介面和多個具體生產物件的工廠,於是我們要增加乙個新的邏輯運算,就不需要更改原來...