設計模式--原型模式(Prototype Pattern)

愛穿襯衫的程式設計師發表於2019-01-09

定義:

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

使用場景:

  • 類初始化需要消化非常多的資源,這個資源包括資料、硬體資源等,通過原型拷貝避免這些消耗;
  • 通過 new 產生一個物件需要非常繁瑣的資料準備或訪問許可權,則可以使用原型模式;
  • 一個物件需要提供給其他物件訪問,而且各個呼叫者可能都需要修改其值時,可以考慮使用原型模式拷貝多個物件供呼叫者使用,即保護性拷貝。

UML類圖:

設計模式--原型模式(Prototype Pattern)
淺複製 & 深複製

優點:

原型模式是在記憶體二進位制流的拷貝,要比直接new一個物件效能好很多,特別是要在一個迴圈體內產生大量的物件時,原型模式可以更好地體現其優點。

缺點:

這既是它的優點也是缺點,直接在記憶體中拷貝,建構函式是不會執行的,在實際開發當中應該注意這個潛在的問題。優點就是減少了約束,缺點也是減少了約束,需要大家在實際應用時考慮。

相關文章