重學設計模式 Prototype模式

2021-06-06 15:54:07 字數 631 閱讀 3515

1、意圖

2、問題

3、解決方案

4、通用結構

5、參與者

6、協作

7、效果

8、實現

1)使用乙個原型管理器:當乙個系統中原型數目不固定時(以動態建立和銷毀),要保持乙個可用原型的登錄檔。客戶不會自己來管理原型,但會在登錄檔中儲存和檢索原型。客戶在轉殖乙個原型前會向登錄檔請求該原型,這個登錄檔為原型管理器。

原型管理器是乙個關聯儲存器,它返回乙個與給定關鍵字相匹配的原型。它有通過關鍵字註冊和銷毀原型的一些操作。因此客戶可以下執行時更改甚至瀏覽這個登錄檔,這使得客戶無需編寫**就可以擴充套件並得到系統清單。

2)實現轉殖操作:淺拷貝與深拷貝問題

3)初始化轉殖物件:通過定義的其他介面,為轉殖的新物件例項初始化。

9、例項

設計模式 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是乙個固定的流程,很顯然,從乙個狀態已經...