美文网首页
Proxy模式

Proxy模式

作者: 飞絮搅青冥 | 来源:发表于2021-05-01 00:05 被阅读0次

代理模式看上去很简单,就是用一个代理类去继承相同的接口,帮助实际上工作的类做一些其他简单工作,有点类似中介。我们系统很多地方都有它的身影,但感觉大多数都只是防止重复创建而已,并没有完整实现代理模式。书中给的例子是打印机和浏览器缓存,可以帮助程序更快响应,更好区分不同功能,满足客户要求。我去找了一些其他资料,有的说AOP能够让代理模式实现的更加方便,这一点我还要好好消化一下。下面是一些我找到的其他资料。

  • 代理模式的优点
    职责清晰:具体角色是实现具体的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件事务,代码清晰。在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。
    高扩展性:具体主题角色随时会发生变化,但是只要实现了接口,接口不变,代理类就可以不做任何修改继续使用,符合“开闭原则”。
    另外,代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额外的功能来扩展委托类的功能,这样做我们只需要修改代理类而不需要再修改委托类,同样符合开闭原则。
    智能化待完善:动态代理的智能化
  • 代理模式的使用场景
    代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后对返回结果的处理等。代理类本身并不真正实现服务,而是通过调用委托类的相关方法,来提供特定的服务。真正的业务功能还是由委托类来实现,但是可以在业务功能执行的前后加入一些公共的服务。例如我们想给项目加入缓存、日志这些功能,我们就可以使用代理类来完成,而没必要打开已经封装好的委托类。
    参考内容

相关文章

网友评论

      本文标题:Proxy模式

      本文链接:https://www.haomeiwen.com/subject/hyzorltx.html