定義:指將乙個複雜物件的構造與它的表示分離,使同樣的構建過程可以建立不同的表示。
那什麼是將乙個複雜物件的構造與表示分離呢?下面將舉乙個例子說明。
傳說中,我們人類是由女媧創造的,通過拼湊頭、身體、手、腳等部位完成,於是有了以下的程式:
但是女媧覺得還不滿意,覺得需要分為男人和女人,於是有了以下的程式:
但是女媧覺得還是不滿意,得區別高矮胖瘦,這樣就不得不繼續修改原本的程式,這就違背了開閉原則。
其實不難發現,以上不論男人,女人,胖子,瘦子,都具備同樣的創造過程,把頭部,身體,手,腳創造出來然後拼湊完成。
這種具有相同的構造過程,而具體每個部分細節不同的需求,就可以用建造者模式來完成了。
於是有了以下程式:
//具體人
public class people
/// /// 建造指揮者
///
public class goddirector
}/// /// 人類建造過程 這裡就是指前面定義裡的構造
///
public abstract class ipeoplebuilder
男人建造表達 指定義裡面的表示
這裡就能根據不同的建造者實現相同的構造過程,如果以後需要增加其他什麼動物,也有頭身體手腿什麼的,就不用修改原本的建造過程,直接新建乙個指令碼,然後實現抽象類就可以完成。
具體uml圖():
設計模式之建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟 設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設 計模式 和...
設計模式之建造者模式
建造者模式也叫生成器模式,是一種物件建立型模式,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承或過載的方式,動態的建立具有復合屬性的物件。應用場景 物件的建立 builder 模式是為物件的建立而設計的模式 建立的是乙個復合物件 被建立的物件為乙個具有復合屬性的復合物件 關...
設計模式之建造者模式
在做服務介面的時候,往往在業務處理之前需要做業務校驗,格式校驗等業務前處理。這些介面有個相同的特徵,就是必須經過這些處理步驟之後才能做核心的業務處理,拓展的服務介面也必須經過這些處理。基於這個特徵,我們就來分析一下設計模式中,建造者模式。我們先建乙個基礎的服務類 public abstract cl...