設計模式三 原型模式

2021-10-12 15:53:40 字數 2079 閱讀 9930

原型模式:

我們從資料庫獲取資料到dto,從dto傳遞給vo,這個時候需要將dto層的資料全部copy到vo中,這種模式就是一種原型模式。

copy的方式是轉殖。

案例:spring中的 scope='prototype』是乙個原型模式,每次建立的時候都是乙個新的物件,這個物件會取到原有物件的所有的值。

淺轉殖:

public

class

teacher

implements

cloneable

public

teacher

(string name, student student, date date)

private string name;

private student student;

private date date;

public string getname()

public

void

setname

(string name)

public student getstudent()

public

void

setstudent

(student student)

public date getdate()

public

void

setdate

(date date)

}public

static

void

main

(string[

] args)

throws clonenotsupportedexception

深轉殖:

將所有的值都轉殖,完全是新的乙份,實現的方式也比較多。如:序列化,反射等。

public

class

deepteacher

implements

cloneable

,serializable

catch

(exception e)

return null;

}public

deepteacher

(string name, deepstudent student, date date)

private string name;

private deepstudent student;

private date date;

public string getname()

public

void

setname

(string name)

public deepstudent getstudent()

public

void

setstudent

(deepstudent student)

public date getdate()

public

void

setdate

(date date)

}public

class

deepstudent

implements

cloneable

, serializable

public integer getid()

public

void

setid

(integer id)

public string getname()

public

void

setname

(string name)

}public

static

void

main

(string[

] args)

//false

由此可以看出deepstudet的位址變了。所以深度轉殖是完全乙個新的。

設計模式(三) 原型模式

用原型例項指定建立的種類,並通過複製這些原型建立新的物件。原型模式的本質上就是物件拷貝。1 類初始化需要消耗非常多的資源,這個資源包括資料 硬體資源等,通過原型複製這些消耗。2 通過new產生乙個物件需要非常繁瑣的資料準備或訪問許可權,這時可以使用原型模式。3 乙個物件需要提供給其他物件訪問,而且各...

設計模式 三 原型模式

原理 示例 原型模式 prototype pattern 是用於建立重複的物件,同時又能保證效能。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。簡單的說,就是轉殖乙個物件。適用於大物件的建立,因為建立乙個大物件需要很大的開銷,如果每次new就會消耗很大,原型模式僅需記憶體拷貝即可...

設計模式(三)原型模式

原型 prototype 模式是一種物件建立型模式,它採取複製原型物件的方法來建立物件的例項。使用prototype模式建立的例項,具有與原型一樣的資料。要實現原型模式,就要讓當前物件實現cloneable介面,並寫乙個返回當前物件的方法。實現介面的意義是告訴虛擬機器我當前這個類可以被轉殖,通過呼叫...