模式定義
提供乙個介面,讓該介面負責建立一系列「相關或者相互依賴的物件」,無需指定它們具體的類。
——《設計模式》gof
要點總結
如果沒有對應「多系列物件構建」的需求變化,則沒有必要使用abstract factory 模式,這時候使用簡單的工廠完全可以。
「系列物件」指的是在某一特定系列下的物件之間相互依賴、或作用的關係。不同系列的物件之間不能相互依賴。
abstract factory 模式主要在於應對「新系列」的需求變動。其缺點在於難以應對「新物件」的需求變動。
典型實現
把一系列相關物件由乙個基類關聯在一起,防止錯誤的交叉呼叫。
要點總結和典型實現來自於 --李建忠 c++ 抽象工廠設計模式總結
package main
import "fmt"
// 產品介面
type brand inte***ce
// 產品工廠介面
type brandfactory inte***ce
// 建立mi品牌
type mi struct
func (m *mi) producephone()
func (m *mi) producepc()
// 建立mi手機工廠
type mifactory struct
func (m *mifactory) createfactory() brand
}// 建立hw品牌
type hw struct
func (hw *hw) producephone()
func (hw *hw) producepc()
type hwfactory struct
// 建立hw手機工廠
func (hw *hwfactory) createfactory() brand
}type factory struct
func (f *factory) produce()
func main()
f.bf = mi
f.produce()
hw := new(hwfactory)
f.bf = hw
f.produce()
}
設計模式之工廠模式(簡單工廠 工廠模式 抽象工廠)
參考博文 侵權必刪 什麼是工廠模式 通過 物件建立 模式繞開new,來避免物件建立 new 過程中所導致的緊耦合 依賴具體類 適用性 使用new建立物件且導致緊耦合的場景。思考 物件導向程式設計要以動態的思維去看待 換句話說,在看 時需要時間概念,發現 在未來的穩定之處和變化之處。一般介面和抽象類是...
飯工和碗工
飯工和碗工 飯工和碗工 一看這兩個名詞,你一定費解。聽過鉗工電工清潔工搬運工,或是張工王工,那聽過這個稱謂呀。甭急,這是我的發明,你聽我慢慢道來。我兒子兒媳都在天津工作,住的地方到工作單位較遠。早晨六點半出發,晚上七點後回家。若遇見堵車,回到家就八點多了。他們倆既辛苦又繁忙。我和老伴住在陝西老家,身...
飯工和碗工
飯工和碗工 飯工和碗工 一看這兩個名詞,你一定費解。聽過鉗工電工清潔工搬運工,或是張工王工,那聽過這個稱謂呀。甭急,這是我的發明,你聽我慢慢道來。我兒子兒媳都在天津工作,住的地方到工作單位較遠。早晨六點半出發,晚上七點後回家。若遇見堵車,回到家就八點多了。他們倆既辛苦又繁忙。我和老伴住在陝西老家,身...