API裝飾者模式--代理模式

概述

編寫(xiě)基于另外一組類(lèi)的包裝器接口,結(jié)構(gòu)化設(shè)計(jì)模式可以處理接口包裝任務(wù)现诀。按照包裝器層和原始接口的差異遞增程度劃分夷磕,它們以此是:代理、適配器和外觀仔沿。

<1>代理模式

代理類(lèi)和原始類(lèi)擁有同樣的接口坐桩,可以認(rèn)為是一個(gè)單一組件包裝器,

實(shí)現(xiàn)方式:代理類(lèi) 存儲(chǔ) 原始類(lèi)的副本封锉,但更可能是指向原始類(lèi)的指針绵跷,然后代理類(lèi)中的方法將重定向到原始類(lèi)對(duì)象中的同名方法,

注意:將賦值構(gòu)造函數(shù)和賦值操作函符聲明為私有成員是為了阻止客戶(hù)復(fù)制此對(duì)象


微信截圖_20190402160855.png
class Proxy {
  public :
      Proxy() : mOrig(new Original()) {}
       ~Proxy(){
            delete mOrig;
      }
      
     bool DoSomething(int value) {
          return mOrig->DoSomething(value);
    }

private :
     Proxy(const Proxy &);
     const  Proxy &operator=(const Proxy &);
    Original *mOrig;
}

<1-1>代理模式

另一種方案是在此方案的基礎(chǔ)上增加代理和原始API共享虛擬接口成福,目的是更好的保持這兩個(gè)api同步

前提是能夠修改原始API

class IOriginal {
  public:
        virtual bool DoSomething(int value) = 0;
};

class Original : public IOriginal {
  public:
  bool DoSomething(int value);
}

class Proxy : public IOriginal {
  public :
      Proxy() : mOrig(new Original()) {}
       ~Proxy(){
            delete mOrig;
      }
      
     bool DoSomething(int value) {
          return mOrig->DoSomething(value);
    }

private :
     Proxy(const Proxy &);
     const  Proxy &operator=(const Proxy &);
    Original *mOrig;
}

提示:代理提供了一個(gè)接口碾局,此接口將函數(shù)調(diào)用轉(zhuǎn)發(fā)到具有相同形式的另一個(gè)接口

試用場(chǎng)景

如果要修改Original類(lèi)的行為但是要保持它的接口不變,代理模式非常適合奴艾,它尤其適用于Original是第三方庫(kù)類(lèi)净当,自己很難直接修改.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蕴潦,隨后出現(xiàn)的幾起案子像啼,更是在濱河造成了極大的恐慌,老刑警劉巖品擎,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埋合,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡萄传,警方通過(guò)查閱死者的電腦和手機(jī)甚颂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)蜜猾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人振诬,你說(shuō)我怎么就攤上這事蹭睡。” “怎么了赶么?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵肩豁,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我辫呻,道長(zhǎng)清钥,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任放闺,我火速辦了婚禮祟昭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘怖侦。我一直安慰自己篡悟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布匾寝。 她就那樣靜靜地躺著搬葬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艳悔。 梳的紋絲不亂的頭發(fā)上急凰,一...
    開(kāi)封第一講書(shū)人閱讀 49,985評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音很钓,去河邊找鬼香府。 笑死,一個(gè)胖子當(dāng)著我的面吹牛码倦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锭碳,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼袁稽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了擒抛?” 一聲冷哼從身側(cè)響起推汽,我...
    開(kāi)封第一講書(shū)人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎歧沪,沒(méi)想到半個(gè)月后歹撒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诊胞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年暖夭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡迈着,死狀恐怖竭望,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情裕菠,我是刑警寧澤咬清,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站奴潘,受9級(jí)特大地震影響旧烧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜画髓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一粪滤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧雀扶,春花似錦杖小、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至浪册,卻和暖如春扫腺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背村象。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工笆环, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厚者。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓躁劣,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親库菲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子账忘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,093評(píng)論 1 32
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學(xué)習(xí)記錄文檔,今天18年5月份再次想寫(xiě)文章熙宇,發(fā)現(xiàn)簡(jiǎn)書(shū)還為我保存起的...
    Jenaral閱讀 2,739評(píng)論 2 9
  • 今天媽媽給我買(mǎi)了一張很奇快的紙鳖擒,那是一張寫(xiě)毛筆字用的米字格。寫(xiě)字的時(shí)候烫止,用毛筆蒋荚,蘸點(diǎn)清水,寫(xiě)出來(lái)的字居然就是黑色的...
    段智耀閱讀 123評(píng)論 0 0
  • 我喜歡你的風(fēng)情 你喜歡我的單純 我喜歡你的奔放 你喜歡我的靦腆 我喜歡你的熱絡(luò) 你喜歡我的恬靜 你喜歡的正是我有的...
    暖笑如云閱讀 181評(píng)論 0 1