建造者模式(Builder Pattern)

2021-09-30 12:29:23 字數 2104 閱讀 2053

建造者模式(builder pattern)

建造者模式(builder pattern),將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。

結構

參與者

builder

——為建立乙個product物件的各個部件指定抽象介面。

concretebuilder

——實現builder的介面以構造和裝配該產品的各個部件。

——定義並明確它所建立的表示。

director

——構造乙個使用builder介面的物件。

product

——表示被構造的複雜物件。 concretebuilder建立該產品的內部表示並定義它的裝配過程。

——包含定義組成部件的類,包括將這些部件裝配成最終產品的介面。

協作

實現通常有乙個抽象的builder類為導向者可能要求建立的每乙個構件定義乙個操作。這些操作預設情況下什麼都不做。乙個concretebuilder類

對它有興趣建立的構件重定義這些操作。

在builder中預設的方法為空c++中,生成方法故意不宣告為

純虛成員函式,而是把它們定義為空方法,這使客戶只重定義他們所感興趣的操作。

總結

主要是用於建立一些複雜的物件,這些物件內部構建間的建造順序通常是穩定的,但物件內部的構建通常面臨著複製的變化

建造者模式的好處就是使得建造**與表示**分離,由於建造者隱藏了該產品是如何組裝的,所以若需要改變乙個產品的內部表示,只需要在定義乙個具體的建造者就可以了。

建造者模式

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

建造者模式

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

建造者模式

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