設計模式之原型模式

2021-09-17 23:11:33 字數 1233 閱讀 1746

內容抄自《設計模式》清華大學出版社,2011

模式動機:

在軟體系統中,有些物件的建立過程較為複雜,而且有的時候需要頻繁建立,原型模式可以通過複製的方法,減少建立物件花費的時間。

模式定義:

用原型例項指定建立物件的種類,並且通過複製這些原型建立新的物件。

角色:

1.抽象原型類 (需定義有轉殖介面) 一般用object.class

2.具體原型類  需實現(cloneable:淺轉殖,深轉殖:序列化)

淺轉殖:轉殖物件的內部普通成員變數是新的,但是引用沒有改變

深轉殖:全部改變

優點:1.當物件例項化複雜時,可以簡化

2.可以儲存狀態

缺點:1.需要對類增加clone,違反開閉

2.實現深轉殖**複雜

適用環境:1.建立新物件成本大,或者新物件與原物件相似

2.系統要儲存狀態,且狀態變化小,或者物件本身占用記憶體不大

擴充套件:原型管理器,類似工廠

clone不會呼叫建構函式,

clone和new的效率對比,省略執行() 方法

栗子:

/** 原型模式

* @author administrator

* */

class prototypemodel

@override

public email clone() catch (exception e)

return email;

} public email deepclone() throws exception

} static class attachment implements serializable

static inte***ce cacheobj extends cloneable

static class prototypemanager);

return object.clone();

} }public static void main(string args) throws exception

}

設計模式之原型模式

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

設計模式之原型模式

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

設計模式之原型模式

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