GoF23 原型模式

2021-09-23 22:41:54 字數 840 閱讀 5287

以轉殖羊為例,對比輸出原型和轉殖物件的位址與值的差異

1.新建羊類實現cloneable介面並重寫object中的clone方法,自帶名稱和生日屬性,提供set和get方法。

/**

* 實現轉殖介面並重寫object的clone方法

* @author wangyds

* @date 2019/5/20 22:10

*/public

class

sheep

implements

cloneable

public

sheep

(string name, date birthday)

@override

protected object clone()

throws clonenotsupportedexception

public string getname()

public

void

setname

(string name)

public date getbirthday()

public

void

setbirthday

(date birthday)

}

2.建立客戶單/呼叫者,輸出值對比

/**

* 客戶端/呼叫者

* @author wangyds

* @date 2019/5/20 22:02

*/public

class

client

}

輸出結果

GOF23 原型模式

淺拷貝 具體 實現 public class sheep implements cloneable public string getname public void setname string name public intgetage public void setage int age pu...

GOF23設計模式 原型模式(深轉殖)

測試物件 author administrator public class name implements cloneable,serializable public void setname string name public name clone catch clonenotsupporte...

GoF23 原型(Prototype)模式

目標之一 提高程式的可復用性 有哪些功能可以被擴充套件?擴充套件功能時必須修改哪些地方?有哪些類不需要修改?原型模式 用乙個已經建立的例項作為原型,通過複製該原型來建立乙個相似的物件。public class song implements cloneable public void setname...