[筆記]02Abstract Factory 抽象工廠模式

new的問題


Road road = newRoad();

實現依賴,不能應對“具體實例化類型”的變化。


解決思路

封裝變化點!

如果沒有變化,不要額外的封裝


簡單工廠(靜態工廠)

封裝“對象創建”

面向接口編程   依賴接口,而非依賴實現

public classRoadFactory

{

    public static Road CreateRoad()

    {

        return new Road();

    }

}

//***********客戶程序**************//

Road road =RoadFactory.CreateRoad();

簡單工廠的問題

不能應對“不同系列對象”的變化。


動機(Motivation)

處理“一系列相互依賴的對象”的創建工作

由於需求變化,往往存在 更多系列對象的創建工作

提供一種“封裝機制”來避免客戶程序和這種“多系列具體對象創建工作”的緊耦合


意圖(Intent)

提供一個接口,讓該接口負責創建一系列“相關或者相互依賴的對象”,無需指定他們具體的類。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章