設計模式 原型模式Prototype(建立型)

2022-09-06 03:09:08 字數 958 閱讀 7820

一、原型模式

用原型例項指定建立物件的種類,並通過拷貝這些原型建立新的物件。原型模式實現的關鍵就是實現clone函式,還需要實現深拷貝。

二、uml類圖

三、例子

//

父類class

resume

virtual ~resume() {}

virtual resume* clone()

virtual

void set(char *n) {}

virtual

void

show() {}

};class resumea : public

resume

;resumea::resumea(

const

char *str)

else

}resumea::~resumea()

resumea::resumea(

const resumea &r)

resumea*resumea::clone()

void

resumea::show()

intmain()

三、原型模式的優點及適用場景

使用原型模式建立物件比直接new乙個物件在效能上要好的多,因為object類的clone方法是乙個本地方法,它直接操作記憶體中的二進位製流,特別是複製大物件時,效能的差別非常明顯。(效能提公升?需要研究)

使用原型模式的另乙個好處是簡化物件的建立,使得建立物件就像我們在編輯文件時的複製貼上一樣簡單。

因為以上優點,所以在需要重複地建立相似物件時可以考慮使用原型模式。比如需要在乙個迴圈體內置立物件,假如物件建立過程比較複雜或者迴圈次數很多的話,使用原型模式不但可以簡化建立過程,而且可以使系統的整體效能提高很多。

Java 設計模式之原型模式 Prototype

模式名原型模式prototype 定義原型模式是建立型模式 的一種,其特點在於通過 複製 乙個已經存在的例項 來返回新的例項,而不是新建例項。被複製的例項就是我們所稱的 原型 這個原型是可定製的。原型模式多用於建立複雜的或者耗時的例項,因為這種情況下,複製乙個已經存在的例項使程式執行更高效 或者建立...

設計模式學習系列6 原型模式(prototype)

原型模式 prototype 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。允許乙個物件再建立另外乙個新物件的時候根本無需知道任何建立細節,只需要請求圓形物件的copy函式皆可。1原型模式構成 客戶 client 角色 客戶類提出建立物件的請求。抽象原型 prototype 角色 ...

設計模式 原型模式

1.首先分析原型模式的由來 一般來說,建立乙個物件可以由以下方法 知道物件的具體型別,直接用new生成。不知道型號,知道相應的需求,可以使用工廠方法模式。根據乙個已有的物件來複製為乙個新的物件,可以使用原型模式。2.原型模式可以簡單理解為拷貝原型物件得到新的物件。想象乙個配鑰匙的小店,給店主乙個原有...