天天看點

【秒懂設計模式】原型模式

 秒懂設計模式——原型模式

(五)原型模式

【官方定義】用原型執行個體指定建立對象的種類,并且通過拷貝這些原型,建立新的對象,屬于對象建立模式。

【舉例】在找工作的時候,通常需要我們的畢業證和學位證,但是我們一般不會把原件(原型執行個體)給到用人機關,而是會把原件影印(拷貝)幾份,然後供用人機關使用。

【java代碼】

①建立一個證書抽象類。

②建立證書擴充類——畢業證

③建立證書擴充類——學位證

④建立原型模式管理器——證書管理器

⑤測試

⑥測試結果

圖解關系:

【秒懂設計模式】原型模式

分析:

這種模式是實作了一個原型接口,該接口用于建立目前對象的克隆。當直接建立對象的代價比較大時,則采用這種模式。

獨特的優點:

(1)性能比直接new一個對象要好的多。因為clone方法是一個本地方法,它直接操作記憶體中的二進制流,特别是複制大對象時,性能的差别非常明顯,是以在需要重複地建立相似對象時可以考慮使用原型模式。 (2)原型模式建立模式不會損壞原有對象。 (3)工廠模式對新産品的适應能力比較弱,層級結構比較複雜,沒有原型模式簡潔。

注意事項:

(1)使用原型模式複制對象不會調用類的構造方法。因為clone方法,會直接在記憶體中複制資料。 (2)單例模式與原型模式是沖突的。因為clone方法直接無視構造方法的權限。

繼續閱讀