構造者模式是指乙個由多個簡單的物件一起構造為乙個複雜的物件,使得在物件的建立時可以由乙個相同的流程創造出多個不同的物件進行使用;
以汽車為例:暫時將汽車的組成分為:鋼材、發動機、玻璃和座椅;當我們構建不同品牌的汽車時只需要輸入該汽車的組成部分的相關標識即可完成對該品牌汽車的組裝;同時也也可以獲取多個汽車品牌的汽車物件;
//汽車組成**
#include #include//組成基類
class zuchengclass
; ~zuchengclass(){};
virtual void showzuchengthings() = 0;
void setname(std::string zuchengname)
; std::string getname()
;protected:
private:
std::string _zuchengname;
};//鋼材
class gangcai:public zuchengclass
; ~gangcai(){};
virtual void showzuchengthings()
private: };
//玻璃
class boli :public zuchengclass
; ~boli(){};
virtual void showzuchengthings()
private:
};//發動機
class fadongji :public zuchengclass
; ~fadongji(){};
virtual void showzuchengthings()
private:
};//座椅
class zuoyi :public zuchengclass
; ~zuoyi(){};
virtual void showzuchengthings()
private:
};//汽車產品**
#include "zuchengclass.h"
//汽車基類
class carclass
; ~carclass()
if (_boli)
if (_zuoyi)
if (_fadongji)
};void setgangcai(std::string gangcainame)
; void setboli(std::string boliname) ;
void setzuoyi(std::string zuoyiname) ;
void setfadongji(std::string fadongname) ;
void setcarname(std::string carname) ;
void printcarthings()
if (_boli)
if (_zuoyi)
if (_fadongji)
}private:
zuchengclass* _gangcai;
zuchengclass* _boli;
zuchengclass* _zuoyi;
zuchengclass* _fadongji;
std::string _carname;
};//第一中產品
class onecarclass :public carclass
; ~onecarclass(){};
private:
};//第二中產品
class twocarclass :public carclass
; ~twocarclass(){};
private:
};呼叫:
onecarclass onecar;
onecar.printcarthings();
twocarclass twocar;
twocar.printcarthings();
設計模式 構造者模式
原始碼 from 萬方資料 朱進 構造者模式使用場景 include define buide c define finished 1 define unfinished 0 typedef struct splane plane typedef struct sconcretebuild conc...
構造者Builder模式
根據物件的屬性行為建立例項,通常有幾種方法 1 通過帶有引數的建構函式 同時函式過載 來滿足根據不同屬性 必選屬性,可選屬性 建立物件 2 通過無參建構函式 或者有參建構函式 再配合屬性的getter,setter方法靈活地設定物件的屬性 3 通過builder模式建立物件 分析幾種方式的特點 方式...
設計模式(二) 構造者模式彙總
簡單工廠模式結構圖 簡單工廠模式包括這幾個角色 prouduct 抽象產品 所有具體產品的基類,符合依賴反轉原則 concreteproduct 具體產品 factory 產品工廠 對外提供產品的入口 工廠方法模式結構如圖 包括如下角色 product 抽象產品 concreateproduct 具...