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