以轉殖羊為例,對比輸出原型和轉殖物件的位址與值的差異
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...