04 原型模式

2021-08-22 08:49:40 字數 1138 閱讀 5551

原型模式,產生乙份簡歷,其他簡歷從該簡歷進行clone,所以當這份簡歷改變後,之後clone的簡歷都會有所改變,這份簡歷就是原型。注意:原型模式涉及淺拷貝和深拷貝。**示例如下:

/**

* @file resume.h

* @brief prototype pattern

* @author timeshark

* @version 1.0

* @date 2018-08-06

*/#ifndef resume_hpp

#define resume_hpp

#include #include using std::cout;

using std::endl;

class resume

virtual ~resume() {}

virtual resume* clone()

virtual void set(const char* str) {}

virtual void show() {}

};class resumea : public resume ;

resumea::resumea(const char *str) else

}resumea::~resumea()

resumea::resumea(const resumea &r)

resumea* resumea::clone()

void resumea::set(const char* str)

if (str == null) else

}void resumea::show()

#endif

/**

* @file main.cpp

* @brief main

* @author timeshark

* @version 1.0

* @date 2018-08-06

*/#include "resume.h"

int main()

輸出:

建立型模式 原型模式

使用原型例項指定建立物件的種類,並且通過轉殖這些原型建立新的物件 原理是將乙個原型物件傳給要發動建立的物件,該物件通過請求原型物件轉殖自己來建立過程 轉殖方法 public prototype clone jdk中為我們提供了轉殖的方法clone 從object繼承下來,乙個物件要實現轉殖,需要實現...

建立型模式 原型模式

原型 prototype 模式主要用於建立物件的轉殖,通常其最簡單的形式就是採用自定 clone 函式並 傳入物件引數以返回此物件的乙個副本,這在 python 實作上可使用內定 copy.cop y 或 copy.deepcopy 函式來達到此目的。當已有乙個物件但對此物件的某些部分會被變更卻又想...

原型模式 建立型模式

文章首發個人部落格 如果我們有乙個類 sheep 它裡面有兩個屬性,名稱 name 年齡 age 現在我們有乙個它的例項 s1 我們需要按照這個例項的屬性再去建立兩個物件。1 sheep data public class sheep 2 main public class main 原型模式 用原...