原型模式(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ù)庫操作之后被創(chuàng)建。我們可以緩存該對(duì)象,在下一個(gè)請(qǐng)求時(shí)返回它的克隆,在需要的時(shí)候更新數(shù)據(jù)庫,以此來減少數(shù)據(jù)庫調(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é)合體
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
針對(duì)發(fā)明專利創(chuàng)造性無效的部分答復(fù) 專利糾紛 2010-04-21 08:54:02 閱讀11 評(píng)論1 字號(hào):大中小  
發(fā)表于 04-22 10:52
喜歡用ERP新技術(shù)的人能發(fā)揮管理創(chuàng)造性思維我們知道“興趣是最好的老師”,這是一句比較經(jīng)典的話,那么我想表達(dá)的是如果某人對(duì)自己所在的領(lǐng)域感興趣,只要有長(zhǎng)期堅(jiān)持下去的信念,一般會(huì)激發(fā)他的創(chuàng)造性思維,這是
發(fā)表于 07-29 10:09
喜歡用ERP新技術(shù)的人能發(fā)揮管理創(chuàng)造性思維我們知道“興趣是最好的老師”,這是一句比較經(jīng)典的話,那么我想表達(dá)的是如果某人對(duì)自己所在的領(lǐng)域感興趣,只要有長(zhǎng)期堅(jiān)持下去的信念,一般會(huì)激發(fā)他的創(chuàng)造性思維,這是
發(fā)表于 08-09 10:11
利用創(chuàng)造性補(bǔ)償實(shí)現(xiàn)小型放大器驅(qū)動(dòng)200 mW負(fù)載
發(fā)表于 04-06 06:44
在這段視頻中,我們將向您展示一些創(chuàng)造性的方法,在設(shè)計(jì)小軍鼓聲音時(shí),如何利用Futzbox的功能和參數(shù)來發(fā)揮您的優(yōu)勢(shì)! 我們還談到了Futzbox的模式選擇器在插件的聲音中發(fā)揮的作用。典型的后期制作
發(fā)表于 07-25 08:09
什么是菊花鏈模式 星型模式 菊花鏈模式 菊花鏈模式是簡(jiǎn)化的級(jí)聯(lián)模式,主要的優(yōu)點(diǎn)是提供集中管理的擴(kuò)展端口,對(duì)于
發(fā)表于 12-05 09:00
?8532次閱讀
電子工程師結(jié)合創(chuàng)造性與習(xí)慣
人們可能會(huì)對(duì)電子產(chǎn)品的開發(fā)與設(shè)計(jì)方法堅(jiān)持某種不變的觀念,甚至對(duì)解決不同問題所采用的器件這樣的小事都有某種思維定勢(shì),這是可
發(fā)表于 12-16 09:19
?2032次閱讀
游戲開發(fā)者的三十個(gè)創(chuàng)造性詞匯
發(fā)表于 05-31 09:08
?1618次閱讀
結(jié)構(gòu)型模式一、適配器模式(一)定義:適配器模式(Adapter Pattern)是作為兩個(gè)不兼容的接口之間的橋梁,它結(jié)合了兩個(gè)獨(dú)立接口的功能。這種模式涉及到一個(gè)單一的類,該類負(fù)責(zé)加入獨(dú)
發(fā)表于 11-06 17:51
?1次下載
根據(jù)不同的應(yīng)用場(chǎng)景與意圖,設(shè)計(jì)模式主要分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式三類。本文主要探索行為型模式中的策略
發(fā)表于 10-31 14:24
?938次閱讀
原型模式(Prototype Pattern),是屬于創(chuàng)建型模式的一種。原型模式主要是使用了原型對(duì)象實(shí)例,來指定被創(chuàng)建對(duì)象的種類,并且通過拷貝原型
發(fā)表于 01-12 11:14
?299次閱讀
原型模式是指將類設(shè)計(jì)成可復(fù)制(克?。╊愋?,繼承Cloneable類,在調(diào)用時(shí)就可以直接通過clone()方法克隆已有對(duì)象生成新的對(duì)象。
發(fā)表于 06-01 14:18
?664次閱讀
在代理模式(Proxy Pattern)中,一個(gè)類代表另一個(gè)類的功能。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式。
發(fā)表于 06-09 15:27
?834次閱讀
建造者模式(Builder Pattern)使用多個(gè)簡(jiǎn)單的對(duì)象一步一步構(gòu)建成一個(gè)復(fù)雜的對(duì)象。這種類型的設(shè)計(jì)模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對(duì)象的最佳方式。
發(fā)表于 06-09 16:25
?729次閱讀
。最近看設(shè)計(jì)模式的書,對(duì)于每個(gè)模式,用C++寫了個(gè)小例子,加深一下理解。 一、設(shè)計(jì)模式的分類 總體來說設(shè)計(jì)模式分為三大類 創(chuàng)建型模式,共五種
發(fā)表于 11-11 11:45
?735次閱讀
評(píng)論