用原型例項指定建立物件的種類,並且通過拷貝(轉殖)這些原型建立新的物件。
/**
* 原型類 可以設計為抽象類
*/public
class
resume
implements
cloneable
public
resume(string name, string education, work work)
public string getname()
public
void
setname(string name)
public string geteducation()
public
void
seteducation(string education)
public work getwork()
public
void
setwork(work work)
@override
public object clone() catch (clonenotsupportedexception e)
//要依次轉殖屬性
result.work = (work)(this.work.clone());
return result;
}@override
public string tostring()
}/**
* 原型類中的屬性
*/public
class
work
implements
cloneable
public string gettime()
public
void
settime(string time)
public string getname()
public
void
setname(string name)
@override
protected object clone() catch (clonenotsupportedexception e)
return work;
}@override
public string tostring()
}//客戶端類
/** * 客戶端類
通過原型模式,我們可以去少去很多建立物件的過程,隱藏了建立物件的過程,對效能大大的提公升,在其中運用到的
clone()方法及為重要,轉殖在object中本身有轉殖方法,一般是實現cloneable介面來實現clone()方法,一般情
況下的轉殖預設為淺拷貝(轉殖)-如果類中字段型別是值型別,對該字段進行逐位複製,如果是引用型別,則複製引用
但是不複製引用物件,此情況下,原有物件和轉殖出來的物件引用的是同乙個物件。 而深拷貝(轉殖)如果類中字段類
型是值型別,對該字段進行逐位複製,如果是引用型別,把引用物件的字段指向複製過來的新物件,而不是原來使用的對
象。
設計模式之原型模式
原型模式其實就是從乙個物件再建立乙個可定製的物件,而且不需要知道建立的細節。具體就是說通過複製或者轉殖乙個原型物件產生新的物件 轉殖物件 分為兩種 深複製或者淺複製,這兩種的主要區別是 在原型中如果有物件的引用,淺複製是將引用複製過來了,也就是淺複製和原型中的物件的引用相同,而深複製是將轉殖物件中引...
設計模式之原型模式
include include 此練習為原型模式方法的練習 原型模式揭示了在同一原型上可以通過複製使得 只需要例項化一次,再通過相應的類函式操作可以得到 同一原型下的不同的版本物件 此練習將考慮在實際開發中 比如 工作經歷也是作為乙個類被含在簡歷類中的情況 這情況將涉及到類的引用和深 淺複製 原型基...
設計模式之原型模式
原型模式的思想就是將乙個物件作為原型,對其進行複製 轉殖,產生乙個和原物件類似的新物件 複製過程可分為淺複製和深複製。淺複製是指直接呼叫父類 即object類 的clone方法 super.clone 該方法是本地 native 方法,呼叫該方法clone出來的新物件,基本資料型別的屬性變數是新建立...