設(shè)計(jì)模式筆記(13)--代理模式
標(biāo)簽:
設(shè)計(jì)模式
代理模式
GOF对于代理模式的定义是:“为其他对象提供一种代理以控制对这个对象的访问”。
直接上代码
package Proxy;public abstract class Subject { public abstract void Request(); }package Proxy;public class RealSubject extends Subject{ @Override public void Request() { // TODO Auto-generated method stub System.out.println("the real request"); } }package Proxy;public class Proxy extends Subject{ private RealSubject realsubject; public Proxy() { realsubject = new RealSubject(); } @Override public void Request() { // TODO Auto-generated method stub realsubject.Request(); } }package Proxy;public class client { public static void main(String[] args) { // TODO Auto-generated method stub Proxy proxy = new Proxy(); proxy.Request(); } }
可以看出,实际进行工作的是RealSubject类的方法,代理类作为桥梁对客户端隐藏了RealSubject类的存在,也就是说当RealSubject不希望客户端知晓自己的存在时,就可以通过代理的方式去完成一些操作。
应用代理模式对象时,代理对象与被代理对象之间是紧耦合的关系,所以在实际应用中,如果有其他可完成工作的更可靠的方式,一般不选择代理模式。
代理模式一般适用于以下情况:
当需要为一个对象在不同的地址空间提供局部的代表时
当需要创建开销特别大的对象 时。
当需要控制对原始对象的访问时
当需要在访问对象时执行一些附加操作时,比如可通过代理对象计算访问实际对象的次数。
作者:球球球球笨
链接:https://www.jianshu.com/p/474f89850284
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)