設計模式 原型模式

2021-08-07 05:43:31 字數 1154 閱讀 3843

原型模式(prototype pattern)是用於建立重複的物件,同時又能保證效能。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。

原型模式多用於建立複雜的或者耗時的例項,因為這種情況下,複製乙個已經存在的例項使程式執行更高效;或者建立值相等,只是命名不一樣的同類資料。

效能提高。

簡化物件的建立

使用原型模式複製物件不會呼叫類的構造方法。

有深拷貝與淺拷貝。

prototype 類

class

prototype

implements

cloneable catch(clonenotsupportedexception e)

return prototype;}}

concreteprototype 類

class

concreteprototype

extends

prototype

}

client類

淺轉殖

只負責轉殖按值傳遞的資料(比如基本資料型別、string型別),而不複製它所引用的物件,換言之,所有的對其他物件的引用都仍然指向原來的物件。

深轉殖

除了淺度轉殖要轉殖的值外,還負責轉殖引用型別的資料。那些引用其他物件的變數將指向被複製過的新物件,而不再是原有的那些被引用的物件。換言之,深度轉殖把要複製的物件所引用的物件都複製了一遍,而這種對被引用到的物件的複製叫做間接複製。

說簡單點就是複製值(淺轉殖)還是引用(深轉殖).深轉殖還存在乙個死迴圈的問題,所以需要多加注意。

設計模式 原型模式

1.首先分析原型模式的由來 一般來說,建立乙個物件可以由以下方法 知道物件的具體型別,直接用new生成。不知道型號,知道相應的需求,可以使用工廠方法模式。根據乙個已有的物件來複製為乙個新的物件,可以使用原型模式。2.原型模式可以簡單理解為拷貝原型物件得到新的物件。想象乙個配鑰匙的小店,給店主乙個原有...

設計模式 原型模式

魔術師手拿一張百元大鈔,瞬間又變出兩張。也像配鑰匙一樣,拿一把鑰匙,老師傅就能做出另乙個一模一樣的。像這種複製我們並不陌生,類似於我們設計中的原型模式 本文將從以下幾點 原型模式 概述 結構圖 淺複製深複製 總結 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。允許乙個物件再建立另外...

設計模式 原型模式

原型模式 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。1 假設我們現有乙個物件,但是它的型別需要執行期確定,我們不知道它的動態型別是什麼,現在我們想建立它的副本。顯然通過建構函式建立是很麻煩的,這時候我們可以使用原型模式中的clone函式直接得到該物件的副本。2 有些時候我們想要...