在代理模式(Proxy Pattern)中,一個(gè)類代表另一個(gè)類的功能。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式。
在代理模式中,我們創(chuàng)建具有現(xiàn)有對(duì)象的對(duì)象,以便向外界提供功能接口。在直接訪問對(duì)象時(shí)帶來的問題,比如說:要訪問的對(duì)象在遠(yuǎn)程的機(jī)器上。
在面向?qū)ο笙到y(tǒng)中,有些對(duì)象由于某些原因(比如對(duì)象創(chuàng)建開銷很大,或者某些操作需要安全控制,或者需要進(jìn)程外的訪問),直接訪問會(huì)給使用者或者系統(tǒng)結(jié)構(gòu)帶來很多麻煩,我們可以在訪問此對(duì)象時(shí)加上一個(gè)對(duì)此對(duì)象的訪問層。
結(jié)構(gòu)圖
角色與理解
- 代理模式共分為四種角色:
- Subject (抽象主題角色):真實(shí)主題角色與代理主題角色的共同父類,可以是具體類、抽象類、接口,客戶端針對(duì)抽象主題角色編程
- RealSubject (真實(shí)主題角色):實(shí)現(xiàn)具體業(yè)務(wù)方法的類,被代理主題角色調(diào)用
- Proxy (代理主題角色):持有真實(shí)主題角色的引用,在調(diào)用真實(shí)主題角色的具體業(yè)務(wù)方法之前或者之后添加其它操作
- 客戶端面對(duì)抽象主題角色編程,調(diào)用抽象主題角色實(shí)際上調(diào)用的是代理主題角色,代理主題角色調(diào)用的是真實(shí)主題角色的方法,并在調(diào)用真實(shí)主題角色之前或者之后添加其他操作
核心代碼
- 抽象主題角色
- 真實(shí)主題角色
- 代理主題角色
- 客戶端
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6696瀏覽量
111185 -
Proxy
+關(guān)注
關(guān)注
0文章
7瀏覽量
7472 -
pattern
+關(guān)注
關(guān)注
0文章
6瀏覽量
9672
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
適配器模式和代理模式的區(qū)別
優(yōu)化電動(dòng)汽車的結(jié)構(gòu)性能
適配器模式、裝飾器模式、代理模式的區(qū)別

適配器模式和代理模式的區(qū)別

GoF設(shè)計(jì)模式之代理模式
設(shè)計(jì)模式結(jié)構(gòu)性:適配器模式

設(shè)計(jì)模式結(jié)構(gòu)性:組合模式

設(shè)計(jì)模式結(jié)構(gòu)性:橋接模式

設(shè)計(jì)模式結(jié)構(gòu)性:門面模式

設(shè)計(jì)模式結(jié)構(gòu)性:享元模式

設(shè)計(jì)模式中代理模式的使用場景

評(píng)論