天天看點

設計模式--淺談原型模式

原型模式的優缺點和使用環境:

1.優點:(1)當要建立的執行個體對象較為複雜時,使用原型模式可以簡化對象的建立過程,通過複制一個已有執行個體提高實力的建立效率

(2)擴充性較好,由于在原型模式中提供了抽象原型類,在用戶端可以針對抽象原型類程式設計,而将具體原型類寫在配置檔案中,增加或減少産品類對系統沒有任何影響

(3)提供了簡化的建立結構,工廠方法模式常常需要一個與産品類等級結構相同的工廠等級結構,而原型模式不需要,原型模式中産品的複制是通過封裝在原型類中的克隆方法來實作的,無需專門的工廠類來建立産品

(4)可以使用深克隆的方式儲存對象的狀态,使用原型模式将對象複制一份并将其狀态儲存起來,以便在需要的時候使用,可複制實作撤消操作

2.缺點:(1)需要為每一個類配備一個克隆方法,而且該克隆方法位于一個類的内部,當對一個已有的類進行改造時,需要修改源碼,違背開閉原則

(2)在實作深克隆時需要編寫較為複雜的代碼,而且當對象之間存在多重的嵌套引用時,為實作深克隆,每一層對象對應的類都必須支援深克隆,實作起來比較麻煩

3.使用環境:(1)建立新對象成本較大(例如初始化需要占用較長時間,占用太pu或網絡資源),新對象可以通過複制已有對象來獲得,如果是相似對象,則可以對其成員變量稍作修改

(2)系統要儲存對象狀态,而對象狀态變化很小

(3)需要避免使用分層次的工廠類來建立分層次的對象,并且類的執行個體對象隻有一個或很少的幾個組合狀态,通複制原型對象得到新執行個體可能比使用構造函數建立一個新執行個體更加友善

繼續閱讀