为了账号安全,请及时绑定邮箱和手机立即绑定

设计模式笔记(13)--代理模式

标签:
设计模式

代理模式

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不希望客户端知晓自己的存在时,就可以通过代理的方式去完成一些操作。


应用代理模式对象时,代理对象与被代理对象之间是紧耦合的关系,所以在实际应用中,如果有其他可完成工作的更可靠的方式,一般不选择代理模式。

代理模式一般适用于以下情况:

  1. 当需要为一个对象在不同的地址空间提供局部的代表时

  2. 当需要创建开销特别大的对象 时。

  3. 当需要控制对原始对象的访问时

  4. 当需要在访问对象时执行一些附加操作时,比如可通过代理对象计算访问实际对象的次数。



作者:球球球球笨
链接:https://www.jianshu.com/p/474f89850284


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消