看這個模式的第一感覺,這並不是乙個高大上的設計模式,而是規範化**的乙個小技巧。
原型模式是通過指定例項,通過拷貝來建立新的物件。在c++中,原型模式是通過提供clone介面和重寫拷貝建構函式(深拷貝)來實現的。
class prototype
virtual ~prototype(){}
virtual prototype* clone() = 0;//純虛函式,需要供繼承者自行實現
};// 派生自prototype,實現clone方法
class concreateprototype1:public prototype
concreateprototype1(const concreateprototype1&){}
virtual ~concreateprototype1(){}
virtual prototype* clone()
};// 派生自prototype,實現clone方法
class concreateprototype2:public prototype
concreateprototype2(const concreateprototype2&){}
virtual ~concreateprototype2(){}
virtual prototype* clone()
};int main()
一般在c++的書籍中會介紹深淺拷貝的概念,有了這個概念去理解這個模式是非常簡單的。 設計模式 5 原型模式
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。其中有乙個詞很重要,那就是拷貝。可以說,拷貝是原型模式的精髓所在。舉個現實中的例子來介紹原型模式。找工作的時候,我們需要準備簡歷。假設沒有列印裝置,因此需手寫簡歷,這些簡歷的內容都是一樣的。這樣有個缺陷,如果要修改簡歷中的某項,那麼所有...
C 設計模式 原型模式
定義 用原型 prototype 例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。結構 理解 1.prototype 是原型基類,提供clone 純虛方法,它根據不同的派生類來轉殖不同的物件。2.concreteprototype 是原型具體類。實現clone 方法,轉殖自己,返回轉殖後的...
c 設計模式(原型模式)
good 從乙個物件再建立另外乙個可定製的物件,而無需知道任何建立的細節。並能提高建立的效能。說白了就copy技術,把乙個物件完整的copy出乙份。例 include include include using namespace std class prototype 抽象基類 prototype...