--來自《設計模式:可復用物件導向軟體的基礎》
目的用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
class mazeprototypefactory :public mazefactory ;
mazeprototypefactory
::mazeprototypefactory
(maze* m, wall* w, room* r, door* d) ;
wall*
mazeprototypefactory
::prototypewall() ;
//使用基本迷宮構建的原型進行初始化。 //
普通的
mazeprototypefactory
******mazefactory(new maze, new wall, new room, new door);
//bom
bed
mazeprototypefactory
bombedmazefactory(new maze, new bombedwall, new roomwithabomb, new door);
學習設計模式 原型設計模式
先想一下既然要建立新的例項,為什麼不直接使用 new 而要設計出乙個原型模式進行例項的複製呢?這是因為 有的時候,我們也會在不指定類名的前提下生成例項,例如像圖形編輯器中拖動現有的模型工具製作圖形的例項,這種是非常典型的生成例項的過程太過複雜,很難根據類來生成例項場景,因此需要根據現有的例項來生成新...
學習設計模式 原型模式
說明 通過原型模式可以自動複製乙個例項化物件a給新的物件例項化物件b,這樣可以省去很多例項化 重複 的工作,便於維護。轉殖分為淺轉殖和深轉殖,淺轉殖只轉殖基礎型別資訊,對於類似物件這樣的複雜型別資訊,只轉殖這個物件的引用 深轉殖是基礎型別和複雜型別都轉殖其值,而不僅僅是轉殖引用 需求 複製簡歷,需要...
設計模式學習 Prototype 原型
意圖 用原型示例指定建立物件的種類,通過拷貝這些原型建立新的物件 適用性 當例項化的類是在執行時指定時 為了避免建立乙個與產品類平行的工廠類 當乙個類的示例只能有幾個不同狀態組合中的一種時 示例圖 示例 pragma once 孫悟空一變二二變四 class cmonkeyking if m i 1...