設計模式 原型模式C 實現

2022-07-21 18:24:12 字數 702 閱讀 8514

用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件

class prototype

protected:

prototype();

public:

virtual prototype* clone() const = 0;

vitual ~prototype() = 0;

class prototypeclass:public prototype

public:

prototypeclass();

prototypeclass(const prototypeclass & cp);

prototype* clone()const

注:原型模型在c++中的體現關鍵就在於拷貝建構函式的實現方式。

工廠模式,建造者模式,原型模式都是通過已有類物件來構造新物件,區別在於

工廠模式:側重批量生產多個相互依賴類的物件

建造者模式:側重複雜物件的分步驟建立

原型模式:通過複製自身來實現新物件構造

優點效能優良,避免了建構函式的約束。

①資源優化場景,類的初始化需要資源(資料,硬體)比較大

②效能和安全要求,通過new頻繁生產時會有資料準備和許可權問題

③乙個物件多個修改的場景,eg學生資訊**。

建構函式將不被執行

深淺拷貝問題,當類內部含有指標時,需要自己實現深拷貝。

C 設計模式實現 原型模式

一 概述 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。其中有乙個詞很重要,那就是拷貝。可以說,拷貝是原型模式的精髓所在。舉個現實中的例子來介紹原型模式。找工作的時候,我們需要準備簡歷。假設沒有列印裝置,因此需手寫簡歷,這些簡歷的內容都是一樣的。這樣有個缺陷,如果要修改簡歷中的某項...

C 設計模式實現 原型模式

一 概述 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。其中有乙個詞很重要,那就是拷貝。可以說,拷貝是原型模式的精髓所在。舉個現實中的例子來介紹原型模式。找工作的時候,我們需要準備簡歷。假設沒有列印裝置,因此需手寫簡歷,這些簡歷的內容都是一樣的。這樣有個缺陷,如果要修改簡歷中的某項...

設計模式C 實現六 原型模式

原型模式 prototype 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。原型模式其實就是從乙個物件再建立另乙個可定製的物件,而且不需知道建立的具體細節。ifndef prototype h define prototype h include includeusing name...