GOF23 原型模式

2021-10-04 10:42:25 字數 1363 閱讀 3508

淺拷貝:

具體**實現:

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...