C 設計模式 Prototype原型模式

2021-08-28 03:05:36 字數 1226 閱讀 6661

作用

用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。

prototype模式提供了乙個通過已存在物件進行新物件建立的介面(clone), clone()實現和具體的語言相關,在c++中通過拷貝建構函式實現。

uml圖如下:

**如下:

prototype.h

1 #ifndef _prototype_h_

2 #define _prototype_h_

3 4 /*prototype模式提供了乙個通過已存在物件進行新物件建立的介面(clone)

5 clone()實現和具體的語言相關,在c++中通過拷貝建構函式實現

6 7 作用:

8 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。

9 10 */

11 12 /*prototype原型基類,定義clone介面函式

13 */

14 class prototype

15 ;

22 23 //派生自prototype,實現其介面函式

24 class concreteprototype1:public prototype

25 ;

32 33 //派生自prototype,實現其介面函式

34 class concreteprototype2:public prototype

35 ;

42 43 #endif

prototype.cpp

1 #include "prototype.h"

2 #include "iostream"

3 4 using namespace std;

5 6 ////prototype

7 prototype::prototype()

8

prototype模式和builder模式、abstractfactory模式都是通過乙個類(物件例項)來專門負責物件的建立工作(工廠物件),它們之間的區別是:builder模式重在複雜物件的一步步建立(並不直接返回物件),abstractfactory模式重在產生多個相互依賴類的物件,而prototype模式重在從自身複製自己建立新類。

C 設計模式之Prototype

一 功能 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。二 結構圖 三 優缺點 優點 複製自身。客戶不知道需要物件的實際型別,只需知道它的抽象基類即可。即有繼承樹的情況 缺點 必須先有乙個物件例項 即原型 才能clone。四 示例 namespace designpattern p...

C 設計模式之Prototype

c 設計模式之prototype 2002 08 01 com集中營 一 功能 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。二 結構圖 三 優缺點 優點 複製自身。客戶不知道需要物件的實際型別,只需知道它的抽象基類即可。即有繼承樹的情況 缺點 必須先有乙個物件例項 即原型 才能c...

設計模式 Prototype

感覺這個模式比較之無聊,至少是自己尚未碰到過它的應用,可能對物件的拷貝進行了進一步的封裝,拷貝方式可做成深拷貝和淺拷貝 class prototype operation virtual clone class concreteprototype public prototype operattio...