淺拷貝:
具體**實現:
public
class
sheep
implements
cloneable
public string getname()
public
void
setname
(string name)
public
intgetage()
public
void
setage
(int age)
public string getcolor()
public
void
setcolor
(string color)
public string tostring()
protected object clone()
catch
(exception var3)
return sheep;
}}
public
class
client
public
static
void
main
(string[
] args)
}
深拷貝:
具體**實現:
public
class
deepcloneabletarget
implements
serializable
, cloneable
protected object clone()
throws clonenotsupportedexception
}
public
class
deepprototype
implements
serializable
, cloneable
//方式一:重寫clone方法,並在轉殖後對轉殖物件的物件屬性值進行轉殖重新賦值,以達到深轉殖
protected object clone()
throws clonenotsupportedexception
public object deepclone()
catch
(exception var15)
finally
catch
(exception var14)
}return null;
}}
GoF23 原型模式
以轉殖羊為例,對比輸出原型和轉殖物件的位址與值的差異 1.新建羊類實現cloneable介面並重寫object中的clone方法,自帶名稱和生日屬性,提供set和get方法。實現轉殖介面並重寫object的clone方法 author wangyds date 2019 5 20 22 10 pub...
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...