設(shè)計(jì)模式 - 代理模式

????代理模式算是我們平時(shí)項(xiàng)目中接觸的比較多的一種模式,最常見(jiàn)的包括:Spring AOP,RPC框架,Mybatis中插件實(shí)現(xiàn)方式,JDK中Proxy類(lèi)。下面從最簡(jiǎn)單的概念開(kāi)始一起來(lái)學(xué)習(xí)一下代理模式。


什么是代理模式

????《設(shè)計(jì)模式》這本書(shū)上是這么說(shuō)的:為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。這句話(huà)聽(tīng)起來(lái)看起來(lái)都很抽象,不過(guò)記住就好了。慢慢的根據(jù)例子來(lái)理解這種模式出現(xiàn)的意圖是什么、想解決什么樣的問(wèn)題。
????書(shū)上對(duì)于代理模式舉了這樣一個(gè)例子:一份文檔中,如果包含了一個(gè)比較大的圖片,而我們又不想每次打開(kāi)文檔時(shí)都把圖片加載出來(lái),這個(gè)時(shí)候需要一個(gè)簡(jiǎn)單的圖標(biāo)來(lái)表示我們的圖片,只有在我們點(diǎn)擊這個(gè)圖標(biāo)時(shí),才會(huì)從磁盤(pán)中將圖片加載出來(lái)。這個(gè)圖標(biāo)就是這個(gè)圖片的代理(或者是一個(gè)鏈接)。
????代理模式又根據(jù)實(shí)際用途分了幾類(lèi),有助于我們?cè)诜治鰡?wèn)題時(shí)合理的使用,方便我們?cè)趯W(xué)習(xí)時(shí)更結(jié)構(gòu)化的理解。

  1. 遠(yuǎn)程代理(Remote Proxy):為一個(gè)對(duì)象在不同地址空間提供局部代表,RPC框架。
  2. 虛代理(Virtual Proxy):根據(jù)需要?jiǎng)?chuàng)建開(kāi)銷(xiāo)很大的對(duì)象。
  3. 保護(hù)代理(Protection Proxy):控制對(duì)原始對(duì)象的訪問(wèn)。
  4. 智能索引(Smart Reference):取代了簡(jiǎn)單的指針,它在訪問(wèn)對(duì)象時(shí)執(zhí)行了一些附加操作。

代理模式的結(jié)構(gòu)

image.png

????代理類(lèi)中持有真實(shí)類(lèi)中的一個(gè)引用,當(dāng)用戶(hù)訪問(wèn)代理類(lèi)時(shí),代理類(lèi)會(huì)調(diào)用真實(shí)類(lèi)中響應(yīng)的方法。當(dāng)然這期間可以加很多代理類(lèi)自己的邏輯。

JDK中Proxy實(shí)現(xiàn)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、概述 ??代理模式我們接觸的就比較多了,所謂的代理模式就是,給某一個(gè)對(duì)象提供一個(gè)代理對(duì)象,并由代理對(duì)象控制對(duì)原...
    騎著烏龜去看海閱讀 1,013評(píng)論 0 9
  • 目錄 本文的結(jié)構(gòu)如下: 引言 什么是代理模式 模式的結(jié)構(gòu) 典型代碼 代理模式分類(lèi) 代碼示例 代理模式和裝飾者模式的...
    w1992wishes閱讀 1,646評(píng)論 0 13
  • 在閻宏博士的《JAVA與模式》一書(shū)中開(kāi)頭是這樣描述代理(Proxy)模式的:代理模式是對(duì)象的結(jié)構(gòu)模式。代理模式給某...
    Ant_way閱讀 782評(píng)論 0 0
  • 一、常喝酒的人 俗話(huà)說(shuō)“無(wú)酒不成席,無(wú)酒不是宴”,喝酒交際成為每個(gè)成年人都會(huì)遇到的問(wèn)題。我們知道少量飲酒對(duì)...
    中茶窖藏六堡茶閱讀 3,659評(píng)論 0 0
  • 《二十二》幾分鐘的預(yù)告短片,看著看著眼睛就蒙上了一層紗,尤其老人講著講著不斷的揩淚,說(shuō):“不說(shuō)了不說(shuō)了”,瞬間淚水...
    記得這樣笑哦閱讀 192評(píng)論 0 0

友情鏈接更多精彩內(nèi)容