設計模式 原型模式 Prototype

2021-09-01 14:56:37 字數 1205 閱讀 4711

/**

* 原型模式

* * @author 七夜雪

* @create 2018-11-23 10:51

*/public

class

person

implements

cloneable

@override

public string tostring()

';}// ..............setter, getter方法省略.................

}

測試**:

public

static

void

main

(string[

] args)

throws exception

輸出結果:

原型:person

拷貝:person

public

static

void

main

(string[

] args)

throws exception

輸出結果:

原型:person

拷貝:person

--------------更新了clone物件的birthday屬性---------------

原型:person

拷貝:person

從上面的輸出結果可以看出, 這種情況下prototype和clone物件的birthday屬性還是同乙個物件, 這種就是淺轉殖, 又叫淺拷貝, 這種情況就需要改寫clone方法, 對birthday屬性再進行一次clone操作, 修改後的clone方法如下:

@override

protected object clone()

throws clonenotsupportedexception

修改完之後, 再執行上面的測試用例, 就會發現結果已經正確了:

原型:person

拷貝:person

--------------更新了clone物件的birthday屬性---------------

原型:person

拷貝:person

Java 設計模式之原型模式 Prototype

模式名原型模式prototype 定義原型模式是建立型模式 的一種,其特點在於通過 複製 乙個已經存在的例項 來返回新的例項,而不是新建例項。被複製的例項就是我們所稱的 原型 這個原型是可定製的。原型模式多用於建立複雜的或者耗時的例項,因為這種情況下,複製乙個已經存在的例項使程式執行更高效 或者建立...

設計模式學習系列6 原型模式(prototype)

原型模式 prototype 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。允許乙個物件再建立另外乙個新物件的時候根本無需知道任何建立細節,只需要請求圓形物件的copy函式皆可。1原型模式構成 客戶 client 角色 客戶類提出建立物件的請求。抽象原型 prototype 角色 ...

設計模式 原型模式

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