設計模式(物件建立) 原型模式

2021-08-02 18:29:37 字數 914 閱讀 1251

原型模式:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。

場景還原(找工作準備簡歷):假設沒有列印裝置,因此需手寫簡歷,這些簡歷的內容都是一樣的。這樣有個缺陷,如果要修改簡歷中的某項,那麼所有已寫好的簡歷都要修改,工作量很大。

隨著科技的進步,出現了列印裝置。我們只需手寫乙份,然後利用列印裝置影印多份即可。如果要修改簡歷中的某項,那麼修改原始的版本就可以了,然後再影印。原始的那份手寫稿相當於是乙個原型,有了它,就可以通過影印(拷貝)創造出更多的新簡歷。這就是原型模式的基本思想

uml類圖闡述:

由於轉殖需要乙個原型,而下面的類圖中prototype就是這個原型,prototype定義了轉殖自身的clone介面,由派生類進行實現,而實現原型模式的重點就在於這個clone介面的實現。concreteprototyp類繼承自prototype類,並實現clone介面,實現轉殖自身的操作;同時,在concreteprototype類中需要重寫預設的複製建構函式,供clone函式呼叫,clone就是通過在內部呼叫重寫的複製建構函式實現的。在後續的編碼過程中,如果某個類需要實現clone功能,就只需要繼承prototype類,然後重寫自己的預設複製建構函式就好了。好比在c#中就提供了icloneable介面,當某個類需要實現原型模式時,只需要實現這個介面的道理是一樣的。

模式結構:

更多c++示例**,請移步到本人的github。

設計模式,祝願你把**寫成藝術。

6/19/2017 10:55:20 am

設計模式 建立型模式 原型模式

1 原型模式 prototype模式 是指 用原型例項指定建立物件的種類,並且通過拷貝這些原型,建立新的物件 2 原型模式是一種建立型設計模式,允許乙個物件再建立另外乙個可定製的物件,無需知道如何建立的細節 3 工作原理是 通過將乙個原型物件傳給那個要發動建立的物件,這個要發動建立的物件通過請求原型...

原型模式 建立物件

原型模式 操作 先建立好乙個原型物件,然後通過clone 原型物件來建立新的物件。這就免去了類建立時重複的初始化操作。原型模式適用於大物件的建立。如果每次new 就會消耗很大,原型模式僅需要記憶體拷貝即可。index.php 中 prototype new imooc canvas prototyp...

設計模式之建立型模式 原型模式模式

原型模式 prototype 原型模式 使用原型例項指定待建立物件的型別,並且通過複製這個原型來建立新的物件。原型模式主要涉及兩個概念,淺拷貝與深拷貝。淺拷貝 是指將乙個物件複製後,基本資料型別的變數都會重新建立,而引用型別,指向的還是原物件所指向的。深拷貝 是指將乙個物件複製後,不論是基本資料型別...