prototype 原型模型

2021-06-19 12:17:47 字數 1457 閱讀 2895

這回小菜準備去應聘了 , 大鳥看了小菜的簡歷後感覺他都是在瞎扯 . 小菜準備了很多份相同的簡歷 . 於是大鳥便讓小菜同學通過編寫**來實現相同的三份簡歷 .

不久後小菜實現了第一版的** .

#include

class resume

void setpersonalinfo(char* _***,char* _age)

void setworkexperience(char* _timearea,char* _company)

void display()

protected:

char* name;

char* ***;

char* age;

char* timearea;

char* company;

}; int main()

大鳥看後說到 :」 三份簡歷需要三次初始化 , 這樣客戶端的**很麻煩 , 如果要二十份那就要二十次初始化 .」

小菜答到 :」 是的 . 如果寫錯了乙個字那就要改二十次 .」

於是大鳥便叫小菜用原型模式重寫了一遍** .

通過給出乙個原型物件來指明所要建立的物件的型別,然後用複製這個原型物件的方法建立出更多同型別的物件。原始模型模式允許動態的增加或減少產品類,產品類不需要非得有任何事先確定的等級結構,原型模型模式適用於任何的等級結構。缺點是每乙個類都必須配備乙個轉殖方法。

依賴關係的倒置

抽象不應該依賴於實現細節,實現細節應該依賴於抽象。

(1)抽象a直接依賴於實現細節b(軟體易脆,很容易需要重新編譯)

(2)抽象a依賴於抽象b,實現細節b依賴於抽象b

動機(motivation)

在軟體系統中,經常面臨著「某些結構複雜的物件」的建立工作;由於需求的變化,這些物件經常面臨著劇烈的變化,但是它們卻擁有比較穩定一致的接 口。如何應對這種變化?如何向「客戶程式(使用這些物件的程式)」隔離出「這些易變物件」,從而使得「依賴這些易變物件的客戶程式」不隨著需求改變而改 變?

意圖(intent)

使用原型例項指定建立物件的種類,然後通過拷貝這些原型來建立新的物件

——《設計模式》gof

在spring中.深度科隆是應用廣泛的。在實體模型上面有這樣乙個註解:@component("lawsuitarchive") @scope("prototype"),表明在別的地方應用的時候,是引用其原型,同時entity也要實現cloneable介面和複寫clone()方法。因為原型在初始化的時候就已經建立了一部分有價值的東西,減少容器的壓力,而在別的地方,例如action中引用該物件的時候,直接可以使用@resource(name="lawsuitarchive")引用物件,spring會自動的裝配好你想要的物件。

大小: 8.4 kb

大小: 11.8 kb

大小: 27.8 kb

原型模式(ProtoType)

1.目的 當需要從乙個物件copy出另外乙個物件時,可以使用原型模式,本質上是呼叫的copy建構函式 與copy建構函式的區別,可能就是不需要顯示的生成物件,而是通過函式呼叫 2.prototype.h ifndef prototype h define prototype h include in...

Prototype 原型模式

prototype 原型模式 所謂原型模式,就是可以根據乙個原型,快速建立出其拷貝。如 int a 1 int b new int a a cout a endl cout b endl 輸出結果 2 1 上面就使用了原型模式。根據原型a,快速建立出了a的拷貝b。同時,b儲存了a當時的狀態。當a之後...

原型模式 Prototype

用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。原型模式是一種建立型設計模式,它允許乙個物件再建立另外乙個可定製的物件,根本無需知道任何如何建立的細節,工作原理是通過將乙個原型物件傳給那個要發動建立的物件,這個要發動的物件通過請求原型物件拷貝它們自己來實施建立。現實很殘酷,都第9章了...