建造者模式

2022-09-10 01:00:29 字數 2846 閱讀 8650

編輯說明

回到首頁

將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示

將乙個複雜的物件分解為多個簡單的物件,然後一步一步構建而成。它將變與不變相分離,即產品的組成部分是不變的,但每一部分是可以靈活選擇的。

//建造者在類的內部

封裝性好,構建和表示分離。

擴充套件性好,各個具體的建造者相互獨立,有利於系統的解耦。

客戶端不必知道產品內部組成的細節,建造者可以對建立過程逐步細化,而不對其它模組產生任何影響,便於控制細節風險。

建造者(builder)模式和工廠模式的關注點不同:建造者模式注重零部件的組裝過程,而工廠方法模式更注重零部件的建立過程,但兩者可以結合使用

相同的方法,不同的執行順序,產生不同的結果。

多個部件或零件,都可以裝配到乙個物件中,但是產生的結果又不相同。

產品類非常複雜,或者產品類中不同的呼叫順序產生不同的作用。

初始化乙個物件特別複雜,引數多,而且很多引數都具有預設值。

產品的組成部分必須相同,這限制了其使用範圍。

如果產品的內部變化複雜,如果產品內部發生變化,則建造者也要同步修改,後期維護成本較大。

demo

建造者模式

1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...

建造者模式

軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...

建造者模式

建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...