設計模式普及之原型模式

2021-08-21 16:27:03 字數 827 閱讀 9108

原型模式的定義:

用原型例項指定建立物件的種類,並通過拷貝這些原型建立新的物件。
原型模式的使用場景:

1.類初始化需要消耗非常多的資源,包括資料、硬體資源等;

2.通過new產生乙個物件需要非常繁瑣的資料準備或訪問許可權;

3.乙個物件需要提供給其他物件訪問,而且各個呼叫者可能度需要修改其值時。

簡單實現的方式:

實現cloneable介面,重寫clone方法
public

class

word catch (clonenotsupportedexception e)

return doc;

}//...setter ...getter

}

這裡涉及到淺拷貝和深拷貝的知識:

深拷貝:真實的將資料進行拷貝。

只需要將注釋下的**替換成以下方式:

doc.mimages = (arraylist) this.mimages

.clone()

優點:

原型模式時在記憶體中二進位製流的拷貝,要比直接new乙個物件效能好的多,尤其是迴圈體內。
缺點:

直接在記憶體中拷貝是不會執行建構函式的,實際開發要注意。
讀《android原始碼設計模式解析與實戰》後記錄

設計模式之原型模式

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

設計模式之原型模式

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

設計模式之原型模式

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