2011年3月30日 星期三

Gof Creational - Prototype Pattern

[caption id="attachment_157" align="alignnone" width="600" caption="Prototype Pattern"]Prototype Pattern[/caption]

  • 意圖


在Head First OOAD一書中提到的是,當建構物件實體時所耗用的成本會很大時,那我們就可以採用雛型模式,允許我們用copy的精神來直接利用既有已建立好的物件實體,而非再次耗用大量資源來建構新的部分物件實體內容。


雛型模式允許我們藉由複製既有的實體,建立新的實體,這表示著我們用到了clone() method,或者反序列化,這個pattern的重點在於client端根本不知道特定的類別為何的狀況下,也能建構出新的實體來。




  • 好處





    1. 可以動態的新增或移除物件實體。

    2. 將製造新實體過程中複雜的部分全數隱藏起來,讓client端完全無所知。

    3. 讓client端可產生未知類別的實體。

    4. 在特定的情形下,複製物件實體比重新建立物件更有效率。





  • 用途與缺點





    1. 在一個複雜的類別階層架構中,當系統必須從其中的許多類別產生實體化物件時,可以考慮使用雛型模式。

    2. 物件複製過程相當複雜





  • J2SE 使用 - java.lang.Object

  • 範例

沒有留言: