設計模式之原型模式

2021-08-29 07:34:00 字數 1890 閱讀 8890

prototype模式是一種物件建立型模式,它採取複製原型物件的方法來建立物件的例項。使用prototype模式建立的例項,具有與原型一樣的資料。

換句話說原型模式就是通過複製現有例項來建立新的例項,無須知道相應類的資訊。

原型模式的結構:

優缺點

優點:缺點:

特點:

適用場合:

使用時注意事項:

銀行的電子賬單、廣告信需要你**郵件,特點:量大、時間要求緊。

想一下這個怎麼實現,其實簡單的想法就是郵件類,郵件模板類,傳送郵件類這樣三個函式,然後使用多執行緒給每個執行緒分配乙個郵件的物件進行傳送。這樣的話的缺點就是需要例項化很多的物件,例項化物件的時候會有類的初始化賦值這一類的操作,速度慢,然後我們想就是因為每一封郵件是類似的,只是傳送的人姓名什麼的不同,我們直接拷貝物件,直接從記憶體中拷貝物件的話物件的資訊都有然後重新進行修改,省下了new的整個過程,速度快很多。

設計的類圖:

其實從圖中看不出具體的原型模式是怎麼回事。看一下具體的**;

public

class

eventtemplate

public string geteventsubject()

public string geteventcontent()

}

public

class

mail

implements

cloneable

@override

public mail clone()

catch

(clonenotsupportedexception e)

return mail;

}public string getreceiver()

public

void

setreceiver

(string receiver)

public string getsubject()

public

void

setsubject

(string subject)

public

void

setcontent

(string content)

public string getcontent()

public string gettail()

public

void

settail

(string tail)

}

mail這個類實現了cloneable,繼承了public mail clone() {}這個方法,用來實現物件的拷貝。

public

class

maintest

}public

static string getrandstring

(int maxlength)

return sb.

tostring()

;}public

static

void

sendmail

(mail mail)

}

在測試類中每次發不同的郵件時都會mail clonemail = mail.clone();就是物件的複製。

設計模式之原型模式

原型模式其實就是從乙個物件再建立乙個可定製的物件,而且不需要知道建立的細節。具體就是說通過複製或者轉殖乙個原型物件產生新的物件 轉殖物件 分為兩種 深複製或者淺複製,這兩種的主要區別是 在原型中如果有物件的引用,淺複製是將引用複製過來了,也就是淺複製和原型中的物件的引用相同,而深複製是將轉殖物件中引...

設計模式之原型模式

include include 此練習為原型模式方法的練習 原型模式揭示了在同一原型上可以通過複製使得 只需要例項化一次,再通過相應的類函式操作可以得到 同一原型下的不同的版本物件 此練習將考慮在實際開發中 比如 工作經歷也是作為乙個類被含在簡歷類中的情況 這情況將涉及到類的引用和深 淺複製 原型基...

設計模式之原型模式

原型模式的思想就是將乙個物件作為原型,對其進行複製 轉殖,產生乙個和原物件類似的新物件 複製過程可分為淺複製和深複製。淺複製是指直接呼叫父類 即object類 的clone方法 super.clone 該方法是本地 native 方法,呼叫該方法clone出來的新物件,基本資料型別的屬性變數是新建立...