設計模式 Prototype

2021-06-07 20:43:14 字數 901 閱讀 9860

一. 概述

定義:用原型例項指定建立物件的種類,並且通過

拷貝

這些原型建立新的物件。

換句話說,就是不用重新初始化物件,而是動態地獲得物件執行時的狀態。

再說明白點,就是要乙個拷貝過建構函式類似功能的介面。

結構圖如下:

**如下:

[cpp] //原型類,有乙個clone介面  

class prototype 

virtual prototype* clone() const = 0; 

}; //具體原型類,實現乙個clone自身的操作  

class concreteprototype:public prototype 

//拷貝建構函式  

concreteprototype(const concreteprototype& cp) 

//原型類,有乙個clone介面

class prototype

virtual prototype* clone() const = 0;

};//具體原型類,實現乙個clone自身的操作

class concreteprototype:public prototype

//拷貝建構函式

concreteprototype(const concreteprototype& cp)

二. 說明

1. prototype 模式的關鍵就是(c++中)拷貝建構函式的實現方式,這也是c++實現技術層面上的事情。

2. 示例**中不涉及到深層拷貝(主要指有指標、復合物件的情況),主要在於體現prototype模式的思想。

設計模式 Prototype

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

設計模式 Prototype

原型也是一種建立型模式,考慮下面的場景 乙個類有1,2,3,4,5,6,7,8種狀態,在執行過程中經過了以下1 2 3 4的狀態轉換,且進入到狀態4時必須要經過1,2,3的狀態轉換。在進入狀態4後,可以向5,6,7,8狀態轉換。此時要對此物件做白盒測試,1 4是乙個固定的流程,很顯然,從乙個狀態已經...

設計模式 Prototype

include using namespace std 虛擬基類,所有原型的基類,提供clone介面函式 class prototype virtual prototype virtual prototype clone 0 派生自prototype,實現clone方法 class concrete...