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

評論