所謂原型模式就是用原型例項指定建立物件的種類,並且通過複製這些原型建立新的物件。舉乙個簡單的例子,乙個人想要批量分發自己的名片,然而名片千篇一律,只是偶爾修改一些地方,但需求量大,所以需要不斷例項化名片類,十分麻煩,所以這就有了原型模式。原型模式旨在以某一類為原型,利用clone成員函式不斷拷貝出新物件。
在c++中,有淺拷貝和深拷貝兩種拷貝模式,預設賦值採用淺拷貝的方法,但淺拷貝會共享分配的堆疊空間,析構時會兩次釋放空間導致程式崩潰,所以原型模式一般直接使用深拷貝,由拷貝建構函式實現。
下面我們就以印名片為例子為大家講解一下原型模式的用法。
//轉殖抽象類
class prototype
;//轉殖具體實現類(名片類)
class concreteprototype
concreteprototype(const concreteprototype& pt)
~concreteprototype() {}
concreteprototype* clone()
void show()
};
///
//////
//////
//////
///////
//// filename : prototypedemo.cpp
// editor : peterzheng
// date : 2018/8/16 19:22
/////
//////
//////
//////
///////
#include "prototypedefine.h"
using namespace std;
int main(void)
C 設計模式 原型模式
定義 用原型 prototype 例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。結構 理解 1.prototype 是原型基類,提供clone 純虛方法,它根據不同的派生類來轉殖不同的物件。2.concreteprototype 是原型具體類。實現clone 方法,轉殖自己,返回轉殖後的...
c 設計模式(原型模式)
good 從乙個物件再建立另外乙個可定製的物件,而無需知道任何建立的細節。並能提高建立的效能。說白了就copy技術,把乙個物件完整的copy出乙份。例 include include include using namespace std class prototype 抽象基類 prototype...
C 設計模式 原型模式
用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。建立型模式中乙個比較特殊的模式 原型模式,有個最大的特點是轉殖乙個現有的物件,這個轉殖的結果有2種,一種是淺度複製,另一種是深度複製。建立型模式一般是用來建立乙個新的物件,然後我們使用這個物件完成一些物件的操作,我們通過原型模式可以快速...