原型模式(Prototype Pattern)是用于創(chuàng)建重復的對象,同時又能保證性能。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。
這種模式是實現(xiàn)了一個原型接口,該接口用于創(chuàng)建當前對象的克隆。當直接創(chuàng)建對象的代價比較大時,則采用這種模式。例如,一個對象需要在一個高代價的數(shù)據(jù)庫操作之后被創(chuàng)建。我們可以緩存該對象,在下一個請求時返回它的克隆,在需要的時候更新數(shù)據(jù)庫,以此來減少數(shù)據(jù)庫調(diào)用。
結(jié)構(gòu)圖
角色與理解
- 原型模式共有以下幾種角色:
- Prototype(抽象原型類)定義clone方法的接口,類型為接口、抽象類或者具體的類,是所有具體原型類的父類
- ConcretePrototype(具體原型類)實現(xiàn)clone方法的實現(xiàn)了,可以為多個類,提供不同的clone方式
- Client(客戶類)讓一個原型對象復制新的對象
- 原型方法的核心是如何實現(xiàn)clone方法,不同的clone方法最終的效果也是不一樣的
深拷貝與淺拷貝
- 淺拷貝(ShallowClone):當對象被復制時,只復制對象本身與值類型的成員變量,引用類型的成員變量沒有被復制
- 深拷貝(DeepClone):當對象被復制時,對象本身、值類型成員變量、引用類型成員變量都會被復制,原型對象與復制對象完全獨立
核心代碼
- 抽象原型類
- 被復制的對象與具體原型類的結(jié)合體
- 客戶端
-
數(shù)據(jù)庫
+關(guān)注
關(guān)注
7文章
3907瀏覽量
65959 -
Cyclone
+關(guān)注
關(guān)注
0文章
55瀏覽量
30482
發(fā)布評論請先 登錄
[討論]針對發(fā)明專利創(chuàng)造性無效的部分答復
喜歡用ERP新技術(shù)的人能發(fā)揮管理創(chuàng)造性思維
喜歡用ERP新技術(shù)的人能發(fā)揮管理創(chuàng)造性思維
請問如何利用創(chuàng)造性補償實現(xiàn)小型放大器驅(qū)動200 mW負載?
McDSP Futzbox 創(chuàng)造性的使用演示
什么是菊花鏈模式 星型模式
電子工程師結(jié)合創(chuàng)造性與習慣
設(shè)計模式之結(jié)構(gòu)型模式

設(shè)計模式最佳實踐探索—策略模式
嵌入式 C 語言之原型模式應用
設(shè)計模式創(chuàng)造性:建造者模式

各類設(shè)計模式及實現(xiàn)

評論