設計模式學習 Prototype 原型

2021-05-25 07:59:02 字數 614 閱讀 3358

意圖:用原型示例指定建立物件的種類,通過拷貝這些原型建立新的物件

適用性:

當例項化的類是在執行時指定時

為了避免建立乙個與產品類平行的工廠類

當乙個類的示例只能有幾個不同狀態組合中的一種時

示例圖:

示例**:

#pragma once

//孫悟空一變二二變四…

class cmonkeyking

if(m_i ==1)

else

}public:

cmonkeyking* clone()

private:

int m_i;

};cmonkeyking** kings = new cmonkeyking*[100];

cmonkeyking stonking(0);

cmonkeyking qitianking(1);

cmonkeyking otherkin(-1);

for(int i=0;i<100;i++)

else if(i%3==1)

else

}//cmonkeyking* ptemp = *kings;

for(int j=0;j<100;j++)

設計模式 Prototype

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

設計模式 Prototype

一.概述 定義 用原型例項指定建立物件的種類,並且通過 拷貝 這些原型建立新的物件。換句話說,就是不用重新初始化物件,而是動態地獲得物件執行時的狀態。再說明白點,就是要乙個拷貝過建構函式類似功能的介面。結構圖如下 如下 cpp 原型類,有乙個clone介面 class prototype virtu...

設計模式 Prototype

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