原型模式:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。
原型模式就是從乙個物件再建立另外乙個可定製的物件,而且不需要知道任何建立的細節。
淺複製,深複製
淺複製,複製值型別的實域,對引用型別的實域只複製引用不複製引用的物件,即轉殖出來的物件b
和原物件a
引用同乙個物件型別的實域c
,在b的方法
改變b中的c
會影響a中的c
。
輸出://簡歷類,實現cloneable介面
public
class
resume
implements
cloneable
public
void
setinfo
(string ***, string age)
public
void
setwork
(string time, string company)
@override
protected object clone()
throws clonenotsupportedexception
@override
public string tostring()
';}public
static
void
main
(string[
] args)
throws clonenotsupportedexception
}
如果改為物件resume
resume
work
持有time
和company
實域,淺複製無法完成引用物件的複製,只複製了引用
深複製,對引用物件//簡歷類,實現cloneable介面
public
class
resume
implements
cloneable
public
void
setinfo
(string ***, string age)
public
void
setwork
(string time, string company)
@override
protected object clone()
throws clonenotsupportedexception
@override
public string tostring()
';}public
static
void
main
(string[
] args)
throws clonenotsupportedexception
}
work
也進行複製。
輸出://簡歷類,實現cloneable介面
public
class
resume
implements
cloneable
//轉殖引用物件的介面
public
void
setwork
(work work)
public
void
setinfo
(string ***, string age)
public
void
setwork
(string time, string company)
@override
protected resume clone()
throws clonenotsupportedexception
@override
public string tostring()
';}public
static
void
main
(string[
] args)
throws clonenotsupportedexception
}
resume
resume
設計模式(六)原型模式
原型模式 用原型例項建立指定物件的種類,並且通過拷貝這些原型建立新的物件 要實現建立原型,需要實現cloneable介面,重寫clone 方法 基本的原型模式,物件的屬性沒有引用型別 public class prototype implements cloneable public string ...
設計模式 之六 原型模式ProtoType
設計模式之 六 原型模式prototype 適用範圍 用原型例項指定建立物件的各類並且通過拷貝這些原型建立新的物件 書中例項 簡歷模型。原型模式結構圖如下所示。關鍵 如下 1 父類iprototype.h 抽象方法 virtual iprototype clone 0 iprototype.cpp ...
小話設計模式六 原型模式
原型模式定義 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。原型模式解析 原型模式是一種建立型設計模式,該模式允許乙個物件再建立另外乙個可定製的物件,根本無需知道任何如何建立的細節,工作原理是 通過將乙個原型物件傳給那個要發動建立的物件,這個要發動建立的物件通過請求原型物件拷貝它們...