C 設計模式 原型模式

2021-08-24 20:50:14 字數 1466 閱讀 2305

所謂原型模式就是用原型例項指定建立物件的種類,並且通過複製這些原型建立新的物件。舉乙個簡單的例子,乙個人想要批量分發自己的名片,然而名片千篇一律,只是偶爾修改一些地方,但需求量大,所以需要不斷例項化名片類,十分麻煩,所以這就有了原型模式。原型模式旨在以某一類為原型,利用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種,一種是淺度複製,另一種是深度複製。建立型模式一般是用來建立乙個新的物件,然後我們使用這個物件完成一些物件的操作,我們通過原型模式可以快速...