設計模式之原型模式 看我72變!

2021-10-02 19:12:48 字數 1012 閱讀 8282

四、原型模式的示例

五、原型模式的優缺點

原型模式是一種物件建立型模式, 它採取複製原型物件的方法來建立物件的例項,而不需要知道建立物件的細節過程,它是目標物件的乙個「自我轉殖」。

1、建立乙個物件的成本比較大時,可以考慮使用複製的方式獲取乙個新物件。

為具體原型提供乙個統一抽象介面,需要具體原型類實現。

被複製的物件,需要實現抽象原型類中的統一介面。

// prototypepattern.cpp : 此檔案包含 "main" 函式。程式執行將在此處開始並結束。

//#include

#include

using

namespace std;

class

monkey

virtual

~monkey()

virtual monkey*

clone()

=0;virtual

void

printname()

=0;private:}

;class

sunwukong

:public monkey

~sunwukong()

sunwukong

(const sunwukong &other)

monkey*

clone()

void

printname()

private

: string m_namestr;};

#define delete_ptr(p) }

intmain()

建立的物件比較複雜時,可以利用原型模式簡化物件的建立過程,能夠提高效率。

可以在程式執行時,獲得乙份內容相同的例項,且各個例項之間不會相互干擾。

當實現深拷貝時,可能需要比較複雜的**。

需要為每乙個類配備轉殖的方法,對乙個新實現的類來說容易,對原有的類改造比較麻煩,需要全盤考慮。

能力有限,如有錯誤,多多指教。。。

設計模式之原型模式

原型模式其實就是從乙個物件再建立乙個可定製的物件,而且不需要知道建立的細節。具體就是說通過複製或者轉殖乙個原型物件產生新的物件 轉殖物件 分為兩種 深複製或者淺複製,這兩種的主要區別是 在原型中如果有物件的引用,淺複製是將引用複製過來了,也就是淺複製和原型中的物件的引用相同,而深複製是將轉殖物件中引...

設計模式之原型模式

include include 此練習為原型模式方法的練習 原型模式揭示了在同一原型上可以通過複製使得 只需要例項化一次,再通過相應的類函式操作可以得到 同一原型下的不同的版本物件 此練習將考慮在實際開發中 比如 工作經歷也是作為乙個類被含在簡歷類中的情況 這情況將涉及到類的引用和深 淺複製 原型基...

設計模式之原型模式

原型模式的思想就是將乙個物件作為原型,對其進行複製 轉殖,產生乙個和原物件類似的新物件 複製過程可分為淺複製和深複製。淺複製是指直接呼叫父類 即object類 的clone方法 super.clone 該方法是本地 native 方法,呼叫該方法clone出來的新物件,基本資料型別的屬性變數是新建立...