代理模式设计模式

代理模式定义

一个类代表另一个类的功能,被代表的类不会对外部提供访问路径,只有代理类提供。

代理模式详解

使用场景

  1. 对委托类预处理消息,过滤消息,把消息转发给委托类,以及事后对返回值处理。
  2. 保护目标类,不希望被直接调用。
  3. 一些共用的方法,比如在一些方法的前面或者后面加一些日志的功能等等,可以使用代理模式,批量的做一些公共操作。

图解

19 代理模式结构图.png

代理模式优缺点

优点

  1. 代理模式在客户端与目标对象之间起到了一个中介作用和保护目标对象的作用。
  2. 代理对象可以扩展目标对象的功能。
  3. 将客户端和目标对象进行了分离,在一定程度上降低了系统间的耦合度。

缺点

  1. 增加了系统的复杂度,客户端只能够看到代理类。

  2. 会出现大量的重复代码。

代理模式总结

设计模式中代理模式将真实的对象实例隐藏,将代理类暴露给客户端调用,让业务类更加专注自己的事情,其它的事情可以让代理类来做。