模擬實現:
1view codeimport
j**a.util.date;23
/**4
*原型模式: 通過乙個已經建立好的物件來轉殖出同樣的其他物件(屬性一樣,通過實現cloneable介面來實現),
5* 分為深拷貝和淺拷貝,要進行深拷貝,需要對原物件的引用型別屬性也進行拷貝,或者用序列化的方式也可以實現深拷貝
6* 該模式有利於減少建立物件所耗費的時間,直接將記憶體中已有的物件進行拷貝,出去了new物件時的初始化,再賦值等一系列操作7*/
8public
class
test
24 }
1view codeimport
j**a.util.date;23
public
class user implements
cloneable 78
public
user(string name, date birthday)
1213
public
date getbirthday()
1617
public
void
setbirthday(date birthday)
2021
public
string getname()
2425
public
void
setname(string name)
2829
@override
30public object clone() throws
clonenotsupportedexception
3637
private
string name;
38private
date birthday;
39 }
原型模式學習筆記
原型模式 prototype pattern 是指原型例項指定建立物件的種類,並且通過拷貝這些 原型建立新的物件 類初始化消耗資源較多,或者建構函式比較複雜 new 產生的乙個物件需要非常繁瑣的過程 資料準備 訪問許可權等 因為原型模式是在記憶體中對這個物件進行拷貝,要比直接new這個物件效能要好很...
學習設計模式 原型模式
說明 通過原型模式可以自動複製乙個例項化物件a給新的物件例項化物件b,這樣可以省去很多例項化 重複 的工作,便於維護。轉殖分為淺轉殖和深轉殖,淺轉殖只轉殖基礎型別資訊,對於類似物件這樣的複雜型別資訊,只轉殖這個物件的引用 深轉殖是基礎型別和複雜型別都轉殖其值,而不僅僅是轉殖引用 需求 複製簡歷,需要...
原型模式 學習手記
用原型例項指定建立物件的種類,並用通過拷貝這些原型來建立新的例項。模型圖 在.net中可以通過icloneable來實現 public class knife icloneable public string aggressivity public string property public vo...