設計模式(十) 物件建立模式 Builder

2021-10-06 10:24:07 字數 1889 閱讀 2446

物件建立模式-通過物件建立模式繞開物件建立new,避免new導致的緊耦合。典型模式有factory method,abstract method,prototype,builder

建造者模式builder

建造乙個房子,有五個步驟,現在有個石頭房,根據這五個步驟建成。五個步驟對於其他房子建設又不一樣。

#include "stdafx.h"

#include using namespace std;

class ihouse

//父類建構函式寫流程?不行,只能寫在成員函式裡面。

//父類構造要先實現一次,是靜態呼叫。流程還未實現,構造無法使用流程。

virtual ~ihouse(){}

void init()

virtual void buildpart1() = 0;

virtual void buildpart2() = 0;

virtual void buildpart3() = 0;

virtual void buildpart4() = 0;

virtual void buildpart5() = 0;

}; class cstonehouse: public ihouse

virtual void buildpart1() ;

virtual void buildpart2() ;

virtual void buildpart3() ;

virtual void buildpart4() ;

virtual void buildpart5() ;

};int main() //呼叫

//列印

buildpart1

buildpart2

buildpart3

buildpart4

buildpart5

建造方式修改 init()裡面步驟根據石頭房和高樓大廈來修改1-5 的步驟。

無1.違反了設計模式開放封閉原則(ocp)

#include "stdafx.h"

#include using namespace std;

class ihouse

virtual void buildpart1() = 0;

virtual void buildpart2() = 0;

virtual void buildpart3() = 0;

virtual void buildpart4() = 0;

virtual void buildpart5() = 0;

}; class cstonehouse: public ihouse

virtual void buildpart1() ;

virtual void buildpart2() ;

virtual void buildpart3() ;

virtual void buildpart4() ;

virtual void buildpart5() ;

};class housedirector1

void build() };

int main() //呼叫

//列印

buildpart1

buildpart2

buildpart3

buildpart4

buildpart5

將乙個複雜物件的構建與其表示相分離,使得同樣的構建過程(穩定)可以建立不同的表示(變化)

一部分穩定,一部分變化。比如步驟1-5穩定,但是建造方式1-5的順序不穩定。

23種設計模式 十 物件建立之構建器

23種設計模式 二 元件協作之模板方法 23種設計模式 三 元件協作之策略模式 23種設計模式 四 元件協作之觀察者模式 23種設計模式 五 單一職責之裝飾模式 23種設計模式 六 單一職責之橋模式 23種設計模式 七 物件建立之工廠方法 23種設計模式 八 物件建立之抽象工廠 23種設計模式 九 ...

C 設計模式物件建立模式(五)

通過 物件建立 模式繞開new,來避免物件建立 new 過程中所導致的緊耦合 依賴具體類 從而支援物件建立的穩定。他是介面抽象之後的第一步工作。factory method abstract factory prototypebuilder 動機 motivation 模式定義 要點總結 facto...

設計模式 建立模式

一 總括 話說設計模式 每一種設計模式都描述了乙個我們周圍不斷重 生的問題以及解決方案的核心,使用涉及模式可以避免 的重複勞動。設計模式的主要目標 提供 的可維護性和可讀性。設計模式的原則 開閉原則 擴充套件開放 修改關閉 依賴倒轉 依賴抽象,不依賴具體 黎克特制代換原則 子類必須能替換父類的每一種...