設計模式之原型模式

2021-09-26 12:24:50 字數 959 閱讀 1104

原型模式是用於建立重複的物件,同時又能保證效能。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。

這種模式需要實現cloneable介面用於建立當前物件的轉殖。當直接建立物件的代價比較大時,則採用這種模式。例如,乙個物件需要在乙個高代價的資料庫操作之後被建立。我們可以快取該物件,在下乙個請求時返回它的轉殖,在需要的時候更新資料庫,以此來減少資料庫呼叫。

使用場景:1、資源優化場景。 2、類初始化需要消化非常多的資源,這個資源包括資料、硬體資源等。 3、效能和安全要求的場景。 4、通過 new 產生乙個物件需要非常繁瑣的資料準備或訪問許可權,則可以使用原型模式。 5、乙個物件多個修改者的場景。 6、乙個物件需要提供給其他物件訪問,而且各個呼叫者可能都需要修改其值時,可以考慮使用原型模式拷貝多個物件供呼叫者使用。 7、在實際專案中,原型模式很少單獨出現,一般是和工廠方法模式一起出現,通過 clone 的方法建立乙個物件,然後由工廠方法提供給呼叫者。

注意事項:與通過對乙個類進行例項化來構造新物件不同的是,原型模式是通過拷貝乙個現有物件生成新物件的。淺拷貝實現 cloneable,重寫,深拷貝是通過實現 serializable 讀取二進位製流。

public class jingubang implements serializable
public class qitiandasheng implements cloneable,serializable

@override

protected object clone() throws clonenotsupportedexception

public object deepcopy() catch (exception e)

}}

public class test 

}

設計模式之原型模式

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

設計模式之原型模式

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

設計模式之原型模式

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