定义
一个类代表另一个类的功能。
什么时候用
访问对象不适合或者不能直接引用目标对象,或者调动过程很复杂,或者就是调用逻辑经常变化,以上情况都适合用代理模式。
如何使用
在访问一个类时做一些控制。
如果解决
增加中间件。
优点
职责清晰、扩展性高。
缺点
优于在客户端和真实主题之间增加了代理对象,所以请求的处理速度会变慢;
实现代理模式需要额外的功能,有些代理模式的实现非常复杂;
适配器、装饰器、代理这三种模式的区别
实现方式不同:适配器模式是将一个类通过某种方式转换成另一个类;装饰器模式是在一个原有的类的基础上增加某些新的功能编程另一个类;代理模式是将一个类转换成具体的操作类;
用途不同:因为接口不兼容而不能正常进行业务对接,做法是将自己的接口更改为客户所能对接的接口;原有的功能不能满足现有的需求,对原有的功能进行增加;用一个类调用另一个类的方法,不对这个方法进行直接操作;
注意事项
适配器、装饰器、代理这三种模式很像,因为他们的核心套路是一样的,区别就是在于解决什么问题,关注点不一样;