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

代理模式:为另一个对象提供一个替身或占位符以控制这个对象的访问。

代理模式也是我们平常见到的。同样一个类,不同的人对这个类拥有不同的权限怎么控制?我们可以为这个类创建代理,客户通过代理来访问类,这样,我们就可以控制客户对类的访问。代理模式还有许多的用法,说到底就是为类提供了一个代表,客户通过代表来访问。

RealSubject实现了真正的业务逻辑,Proxy和RealSubject都实现Subject接口,客户通过subject接口来完成想要的功能。而客户依赖的是Proxy类,Proxy类依赖RealSubject,通过RealSubject来完成相应的请求。

java中RMI就是一个例子了,客户端调用的其实是代理,RealSubject其实放在服务器端。虚拟代理:作为开销大的对象的代表。比如我们需要加载一个比较大的对象,那么我们可以提供一个虚拟代理,当对象还没加载完成的时候执行其他的事情,如在界面中显示:正在加载。当大对象加载完成后,把职责交给大对象,让大对象来执行请求。

动态代理:

之所以叫动态代理是由于Proxy类是在运行时创建的。不是对象实例化,而是类的创建。而InvocationHandler只有一个invoke方法,该方法通过对Proxy的方法名称进行相应的处理,把请求交给RealSubject的方法或其他操作。Proxy通过InvocationHandler来完成请求。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值