原型模式(Prototype Pattern)是用于創(chuàng)建重復(fù)的對(duì)象,同時(shí)又能保證性能。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式。
這種模式是實(shí)現(xiàn)了一個(gè)原型接口,該接口用于創(chuàng)建當(dāng)前對(duì)象的克隆。當(dāng)直接創(chuàng)建對(duì)象的代價(jià)比較大時(shí),則采用這種模式。例如,一個(gè)對(duì)象需要在一個(gè)高代價(jià)的數(shù)據(jù)庫(kù)操作之后被創(chuàng)建。我們可以緩存該對(duì)象,在下一個(gè)請(qǐng)求時(shí)返回它的克隆,在需要的時(shí)候更新數(shù)據(jù)庫(kù),以此來減少數(shù)據(jù)庫(kù)調(diào)用。
結(jié)構(gòu)圖
角色與理解
- 原型模式共有以下幾種角色:
- Prototype(抽象原型類)定義clone方法的接口,類型為接口、抽象類或者具體的類,是所有具體原型類的父類
- ConcretePrototype(具體原型類)實(shí)現(xiàn)clone方法的實(shí)現(xiàn)了,可以為多個(gè)類,提供不同的clone方式
- Client(客戶類)讓一個(gè)原型對(duì)象復(fù)制新的對(duì)象
- 原型方法的核心是如何實(shí)現(xiàn)clone方法,不同的clone方法最終的效果也是不一樣的
深拷貝與淺拷貝
- 淺拷貝(ShallowClone):當(dāng)對(duì)象被復(fù)制時(shí),只復(fù)制對(duì)象本身與值類型的成員變量,引用類型的成員變量沒有被復(fù)制
- 深拷貝(DeepClone):當(dāng)對(duì)象被復(fù)制時(shí),對(duì)象本身、值類型成員變量、引用類型成員變量都會(huì)被復(fù)制,原型對(duì)象與復(fù)制對(duì)象完全獨(dú)立
核心代碼
- 抽象原型類
- 被復(fù)制的對(duì)象與具體原型類的結(jié)合體
- 客戶端
-
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3848瀏覽量
64687 -
Cyclone
+關(guān)注
關(guān)注
0文章
54瀏覽量
30133
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
[討論]針對(duì)發(fā)明專利創(chuàng)造性無效的部分答復(fù)
喜歡用ERP新技術(shù)的人能發(fā)揮管理創(chuàng)造性思維
喜歡用ERP新技術(shù)的人能發(fā)揮管理創(chuàng)造性思維
請(qǐng)問如何利用創(chuàng)造性補(bǔ)償實(shí)現(xiàn)小型放大器驅(qū)動(dòng)200 mW負(fù)載?
McDSP Futzbox 創(chuàng)造性的使用演示
什么是菊花鏈模式 星型模式
電子工程師結(jié)合創(chuàng)造性與習(xí)慣
設(shè)計(jì)模式之結(jié)構(gòu)型模式
![設(shè)計(jì)<b class='flag-5'>模式</b>之結(jié)構(gòu)<b class='flag-5'>型模式</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
設(shè)計(jì)模式最佳實(shí)踐探索—策略模式
嵌入式 C 語言之原型模式應(yīng)用
用一個(gè)實(shí)例說明原型模式的使用方法
![用一個(gè)實(shí)例說明<b class='flag-5'>原型模式</b>的使用方法](https://file1.elecfans.com/web2/M00/89/11/wKgaomR4ODOAQntqAABm2uDDpbM898.jpg)
設(shè)計(jì)模式結(jié)構(gòu)性:代理模式
![設(shè)計(jì)<b class='flag-5'>模式</b>結(jié)構(gòu)<b class='flag-5'>性</b>:代理<b class='flag-5'>模式</b>](https://file1.elecfans.com/web2/M00/89/6A/wKgZomSC1GmAD0KLAAMELUHJt4U475.jpg)
設(shè)計(jì)模式創(chuàng)造性:建造者模式
![設(shè)計(jì)<b class='flag-5'>模式</b><b class='flag-5'>創(chuàng)造性</b>:建造者<b class='flag-5'>模式</b>](https://file1.elecfans.com/web2/M00/89/6A/wKgaomSC4gmALvFbAAJyDVKgM7w049.jpg)
各類設(shè)計(jì)模式及實(shí)現(xiàn)
![各類設(shè)計(jì)<b class='flag-5'>模式</b>及實(shí)現(xiàn)](https://file1.elecfans.com/web2/M00/AD/A2/wKgaomVO-I2AMONbAADEiEYyxRM997.jpg)
評(píng)論