23種設計模式 原型模式

2021-10-18 10:16:31 字數 848 閱讀 6568

在軟體系統中,經常面臨著「某些結構複雜的物件」建立工作;由於需求的變化, 需要建立的物件的具體型別經常變化,但是它們卻有比較穩定一致的介面。

如何應對這種變化?如何向客戶程式(使用這些物件的程式)「隔離出」這些易變物件,從而使得「依賴這些易變物件的客戶程式」不隨著需求改變而改變?

實現了乙個原型介面,該介面用於建立當前物件的轉殖。當直接建立物件的代價比較大時,則採用這種模式。例如,乙個物件需要在乙個高代價的資料庫操作之後被建立。我們可以快取該物件,在下乙個請求時返回它的轉殖,在需要的時候更新資料庫,以此來減少資料庫呼叫。

檔案分割:

// 抽象類

class

isplitter};

// 具體類

class

binarysplitter

:public isplitter};

class

txtsplitter

:public isplitter};

class

picturesplitter

:public isplitter};

class

videosplitter

:public isplitter};

class

mainform

:public form

void

button1_click()

};

優點:效能提高。 逃避建構函式的約束。

缺點:配備轉殖方法需要對類的功能進行通盤考慮,這對於全新的類不是很難,但對於已有的類不一定很容易,特別當乙個類引用不支援序列化的間接物件,或者引用含有迴圈結構的時候。必須實現 cloneable 介面。

23種設計模式 (7)原型模式

定義 1不通過new 關鍵字來產生乙個物件,而是通過物件複製 2 用原型例項指定建立物件的中了你,並且通過拷貝這些原型建立新的物件 public class prototypeclass implements cloneable catch clonenotsupportedexception e ...

23種設計模式(7) 原型模式

原型模式 prototype pattern 指定要使用原型例項建立的物件的種類,並通過複製此原型來建立新物件。還記得前幾年的多利嗎?被轉殖的羊!簡而言之,通過轉殖基於現有的物件建立乙個新的物件。維基百科上對原型模式的解釋是這樣說的,原型模式是軟體開發中的一種創新設計模式。要建立的物件型別由原型例項...

Java23種設計模式 原型模式

該系列文章為博主學習筆記,原文請參考參考鏈結 這裡的轉殖方法分為兩種 1 呼叫父類的轉殖方法 該物件應該實現cloneable介面,在轉殖方法中呼叫super.clone 方法,返回乙個全新的物件,改方法屬於淺轉殖。2 在該物件中實現serializable介面,在轉殖方法中運用序列化和反序列化生產...