代理模式(Proxy Pattern)也称委托模式(Delegate Pattern),是一种结构型设计模式,代理模式的使用频率非常高,Spring种的AOP就是一个典型的案例。
代理模式
定义
- 为其他对象提供一种代理以控制对这个对象的访问
- 代理对象起到中介作用,可去掉或增加额外的功能
代理模式UML类图
代理对象(Proxy)通过组合的方式对原始对象(RealSubject)的引用,并且实现了Subject接口
代理模式UML时序图
客户端依靠代理对象(Proxy)工作,代理对象将请求转发给基础对象(RealSubject),代理对象在转发之前先进行了访问控制,控制对基础对象的访问,扩展新的功能 - 代理实现可分为静态代理和动态代理
优点
- 职责清晰
实现实际的业务逻辑,不用关心其它非本指责的事务,通过后期的代理完成需要增加的功能 - 代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用
- 高扩展性