java 原型模式(大話設計模式)

2021-09-10 02:12:20 字數 3689 閱讀 5192

/**

* 原型模式(prototype):淺拷貝

* 工作經歷類

*/public

class

workexperience

public

void

setworkdate

(string workdate)

public string getcompany()

public

void

setcompany

(string company)

}/**

* 原型模式(prototype):淺拷貝

* 簡歷類

*/public

class

resume

implements

cloneable

// 設定個人資訊

public

void

setpersonalinfo

(string ***, string age)

// 設定工作經歷

public

void

setworkexperience

(string workdate, string company)

// 顯示

public

void

display()

@override

public object clone()

throws clonenotsupportedexception

}/**

* 原型模式(prototype):淺拷貝

* 客戶端main方法

*/public

class

client

}

/**

* 原型模式(prototype):深拷貝

* 工作經歷類

*/public

class

workexperience

implements

cloneable

public

void

setworkdate

(string workdate)

public string getcompany()

public

void

setcompany

(string company)

@override

public object clone()

throws clonenotsupportedexception

}/**

* 原型模式(prototype):深拷貝

* 簡歷類

*/public

class

resume

implements

cloneable

public

resume

(workexperience workexperience)

throws clonenotsupportedexception

// 設定個人資訊

public

void

setpersonalinfo

(string ***, string age)

// 設定工作經歷

public

void

setworkexperience

(string workdate, string company)

// 顯示

public

void

display()

@override

public object clone()

throws clonenotsupportedexception

}/**

* 原型模式(prototype):深拷貝

* 客戶端main方法

*/public

class

client

}

/**

* 工作經歷類,為演示深度拷貝和淺度拷貝而用

* * @author liu yuning

* */

public

class

workexperience

implements

serializable

public workexperience setworkdate

(string workdate)

public string getworkcompany()

public workexperience setworkcompany

(string workcompany)

}/**

* 簡歷類

* * @author liu yuning

* */

public

class

resume

implements

cloneable

, serializable

public

void

display()

@override

protected object clone()

throws clonenotsupportedexception

// 通過物件序列化,實現深度拷貝

public object deepclone()

throws ioexception, classnotfoundexception

public string getname()

public resume setname

(string name)

public string getgender()

public resume setgender

(string gender)

public

intgetage()

public resume setage

(int age)

public workexperience getworkexperience()

public

void

setworkexperience

(string workdate, string workcompany)

}/**

* 原型模式客戶端 演示深度拷貝和淺度拷貝

* * @todo 考慮優化此處的重複**

* @author liu yuning

* */

public

class

prototypeclient

public

static

void

deepcopy()

throws clonenotsupportedexception,

classnotfoundexception, ioexception

public

static

void

main

(string[

] args)

throws clonenotsupportedexception,

classnotfoundexception, ioexception

}

大話設計模式 原型模式

學無止境,精益求精 十年河東,十年河西,莫欺少年窮 學歷代表你的過去,能力代表你的現在,學習代表你的將來 上篇部落格介紹了c 深淺複製,其實原型模式講的主要就是物件的深淺複製 參考 c 深淺複製 memberwiseclone ok,言歸正傳 原型模式的概念 用原型例項指定建立物件的種類,並且通過拷...

《大話設計模式》 原型模式

如果物件的建立成本比較大,而同乙個類的不同物件之間差別不大 大部分欄位都相同 在這種情況下,我們可以利用對已有物件 原型 進行複製 或者叫拷貝 轉殖 的方式,來建立新物件,以達到節省建立時間的目的。這種基於原型來建立物件的方式就叫作原型設計模式,簡稱原型模式。核心 拷貝 轉殖 建立物件包含的申請記憶...

《大話設計模式 原型模式》筆記

1 原型模式 prototype 用原型例項指定建立物件的種類,並通過拷貝這些原型建立新的物件。2 原型模式結構圖 3 簡單 實現 3.1 繼承cloneable介面 public class concrereprototype implements cloneable public string ...