C 與設計模式(5) 原型模式

2021-07-24 05:40:30 字數 754 閱讀 8602

看這個模式的第一感覺,這並不是乙個高大上的設計模式,而是規範化**的乙個小技巧。

原型模式是通過指定例項,通過拷貝來建立新的物件。在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...