C 模式設計之Builder

2021-06-06 02:33:48 字數 1352 閱讀 8456

c++模式設計之builder

2002-07-30· · ··com集中營 

一、功能

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

二、結構圖

各類之間的互動關係如下圖所示: 

三、示例**

namespace designpattern_builder

;class product2 ;

// class builder

class builder //抽象基類

//提供預設實現

virtual void builderpartb() {}

virtual void builderpartc() {}

protected:

builder() {}

} ;// class concretebuilder1

class concretebuilder1 : public builder //建立product1

virtual void builderparta()  

virtual void builderpartb()

virtual void builderpartc()

virtual product1* getproduct1() //返回建立的product1物件

private:

product1 *_product ;

} ;// class concretebuilder2

class concretebuilder2 : public builder //建立product2

virtual void builderparta()  

virtual void builderpartb()

virtual void builderpartc()

virtual product2* getproduct2() //返回建立的product2物件

private:

product2 *_product ;

} ;// class director

class director

} ;}

客戶端**:

四、例項

(1)例子一。如下圖所示: 

上圖的功能是是把乙個rtf檔案轉換為多種正文格式。rtfreader進行語法分析,然後將所有的token串逐一轉換。可見builder就是一步步地把各個部分組裝為乙個整體。它封閉了組裝的方法,組裝出來的物件也大相徑庭。

設計模式之Builder模式

builder模式是將複雜物件的構建和他的表示分離,使得同樣的建立過程可以建立不通的表示 其結構圖為 示例 為 class product1 class product2 class builder class concretebuilder1 public builder virtual conc...

設計模式之Builder模式

builder模式 乙個複雜物件的構建與他的表示分離,使得同樣的構建過程可以建立不同的表示 場景 1 相同的方法,不同的執行順序,產生不同的事件結果 2多個部件或零件,都可以裝配到乙個物件中,但是產生的執行結果又不同。3產生類很複雜,產品類中的呼叫順序產生不同的作用 4初始化物件很複雜,引數很多,且...

設計模式之Builder模式

一 定義 在設計模式中對builder模式的定義是用於構建複雜物件的一種模式,所構建的物件往往需要多步初始化或賦值才能完成。使用builder模式就是用來替代多引數建構函式。二 在android中的應用 通過檢視原始碼發現,alertdialog的構造方法都是protected修飾,即除了它的子類,...