在某些應用程式中,某些物件(一種類別)比較複雜,且其建立過程比較複雜,並且我們需要頻繁使用到這些物件。如果我們一直使用new的方式來建立這些物件,會導致程式效率低下。
如果我們預先建立好該物件(即原型),通過該物件的自我複製(轉殖)得到物件例項,從而提高**效率,這就是原型模式的思想。
原型模式:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。該模式的關鍵在於「轉殖」,首先建立好原型物件,然後在需要使用時,通過轉殖複製乙個新的個體(注意深複製與淺複製)。
優點:1、效能提高。
2、逃避建構函式的約束。
缺點: 1、配備轉殖方法需要對類的功能進行通盤考慮,這對於全新的類不是很難,但對於已有的類不一定很容易,特別當乙個類引用不支援序列化的間接物件,或者引用含有迴圈結構的時候。
2、必須實現 cloneable 介面。
參考資料原型模式|菜鳥教程
建立型模式之原型模式
功能 用原型例項指定建立物件的種類,並通過拷貝這些原型建立新的物件。原型模式其實就是從乙個物件建立另外乙個可定製的物件,而且不需知道任何建立的細節。優點 一般在初始化的資訊不發生變化的情況下,轉殖是最好的辦法,既隱藏了物件建立細節,又提高效能。其等於是不用重新初始化物件,而是動態地獲得物件執行時的狀...
建立型模式之原型模式
1 概述 通過給出乙個原型物件來指明所要建立的物件的型別,利用這個原型物件來建立更多相似的統一型別的物件但又不是同乙個物件 世界上可能有千千萬萬個人,但你就是你,你是獨一無二的,顏色不一樣的花火,你是最棒的 因為如果直接建立物件的話,代價可能就會比較大,它屬於建立型模式的一種,它提供了一種建立物件的...
設計模式之建立型模式 原型模式模式
原型模式 prototype 原型模式 使用原型例項指定待建立物件的型別,並且通過複製這個原型來建立新的物件。原型模式主要涉及兩個概念,淺拷貝與深拷貝。淺拷貝 是指將乙個物件複製後,基本資料型別的變數都會重新建立,而引用型別,指向的還是原物件所指向的。深拷貝 是指將乙個物件複製後,不論是基本資料型別...