原型其實就是從乙個物件再建立另乙個物件,且不需要知道細節。如果使用原型模式,要保持靈活性,介面應該盡量豐富
例如:起始每個介面只影響乙個屬性,然後提供多個單一屬性介面組合成的多屬性介面。
#include #include using std::string;
using std::cout; using std::endl;
/*因為所有的子類,即原型要使用到父類型別,prototype*,
所有介面還是不能夠純虛,即父類不能是抽象類。
*/class prototype
virtual void setname(const string &name,int id)
virtual void putout()
virtual prototype* clone()
protected:
int m_id;
int m_age;
string m_name;
};class concretetype1 :public prototype
virtual void setname(const string &name ,int id)override
void putout() };
class concretetype2 :public prototype
virtual void setname(const string &name,int id)override
void putout() };
int main()
C 設計模式 原型模式
定義 用原型 prototype 例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。結構 理解 1.prototype 是原型基類,提供clone 純虛方法,它根據不同的派生類來轉殖不同的物件。2.concreteprototype 是原型具體類。實現clone 方法,轉殖自己,返回轉殖後的...
c 設計模式(原型模式)
good 從乙個物件再建立另外乙個可定製的物件,而無需知道任何建立的細節。並能提高建立的效能。說白了就copy技術,把乙個物件完整的copy出乙份。例 include include include using namespace std class prototype 抽象基類 prototype...
C 設計模式 原型模式
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。建立型模式中乙個比較特殊的模式 原型模式,有個最大的特點是轉殖乙個現有的物件,這個轉殖的結果有2種,一種是淺度複製,另一種是深度複製。建立型模式一般是用來建立乙個新的物件,然後我們使用這個物件完成一些物件的操作,我們通過原型模式可以快速...