淺複製:被複製物件的所有變數都含有與原來的物件相同的值,而所有的其它物件的引用都仍然指向原來的物件。
//工作經歷類
public class workexperience
public void setworkdate(string workdate)
public string getcompany()
public void setcompany(string company) }
//簡歷類
public class resume implements cloneable
public void setpersonalinfo(string ***, string age)
public void setworkexperience(string workdate, string company)
public void display()
public resume clone() throws clonenotsupportedexception }
//客戶端**
public class main
}結果顯示:
大鳥 男 29
工作經歷:1998-2003 zz企業
大鳥 男 29
工作經歷:1998-2003 zz企業
大鳥 男 29
工作經歷:1998-2003 zz企業
深複製:把所有引用物件的變數指向複製過的新物件,而不是原有的被引用物件。
//工作經歷
public class workexperience implements cloneable
public void setworkdate(string workdate)
public string getcompany()
public void setcompany(string company)
public workexperience clone()
catch (clonenotsupportedexception e)
return null; }}
//簡歷類
public class resume implements cloneable
public void setpersonalinfo(string ***, string age)
public void setworkexperience(string workdate, string company)
public void display()
public resume clone() }
//客戶端**保持不變
public class main
}結果顯示為:
大鳥 男 29
工作經歷:1998-2000 xx公司
大鳥 男 29
工作經歷:1998-2006 yy企業
大鳥 男 29
工作經歷:1998-2003 zz企業
一般在初始化的資訊不發生變化的情況下,轉殖是最好的辦法。這既隱藏了物件建立的細節,又對效能是大大的提高。
《大話設計模式》 簡歷影印 原型模式 9
p 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。原形模式其實就是從乙個物件再建立另外乙個可定製的物件,而且不需要知道任何建立的細節。在.net中,抽象類prototype是用不著的,在system命名空間中提供了icloneable介面,其中就是唯一乙個方法是clone 只要實現...
設計模式之九 原型模式 簡歷複製
原型模式 prototype 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。原型模式其實就是從乙個物件再建立另外乙個可定製的物件,而且不需要知道任何建立的細節。一般在初始化的資訊不發生變化的情況下,轉殖是最好的辦法。這既隱藏了物件建立的細節,又對效能是大大的提高。淺複製 被複製物件...
大話設計模式 第09章 簡歷影印 原型模式
第09章簡歷影印 原型模式 9.2 簡歷 初步實現 簡歷 class resume 設定個人資訊 public void setpersonalinfo string string age 設定工作經歷 public void setworkexperience string timearea,st...