動機(motivation)
在軟體系統中,有時候面臨著「乙個複雜物件」的建立工作,
其通常由各個部分的子物件用一定的演算法構成;由於需求
的變化,這個複雜物件的各個部分經常面臨著劇烈的變
化,但是將它們組合在一起的演算法卻相對穩定。
如何應對這種變化?如何提供一種「封裝機制」來隔離出「復
雜物件的各個部分」的變化,從而保持系統中的「穩定構建算
法」不隨著需求改變而改變?
意圖(intent)
將乙個複雜物件的構建與其表示相分離,使得同樣
的構建過程可以建立不同的表示。
——《設計模式》gof
builder 模式的幾個要點
• builder 模式主要用於「分步驟構建乙個複雜的對
象」。在這其中「分步驟」是乙個穩定的演算法,而復
雜物件的各個部分則經常變化。
• 變化點在**,封裝**—— builder模式主要在
於應對「複雜物件各個部分」的頻繁需求變動。其
缺點在於難以應對「分步驟構建演算法」的需求變動。
• abstract factory模式解決「系列物件」的需求變
化,builder模式解決「物件部分」的需求變化。
builder模式通常和composite模式組合使用。
建立型模式 生成器 builder
將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示.main.cc design patterns builder in the production of mobile phones,for example,now the mobile phone manufacturers...
Builder(生成器) 物件建立型模式
將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。使得生成器可以隱藏這個產品的表示和內部結構。同時也隱藏了該產品是如何裝配的。因為產品是通過抽象介面構造的,在改變該產品的內部表示時所要做的只是定義乙個新的生成器。將構造 和表示 分開,builder模式通過封裝乙個複雜物件的建...
生成器模式 Builder
把複雜的物件的構建與其表示分離開,以便根據程式的需要在相同的建立過程中建立不同的表示。每個生成器必須有乙個相同的方法名稱。client 建立乙個 director 物件,指定乙個 build 物件,配置 director。當 product 需要生成時,director 通知該builder bui...