SpringAOP - Start
静态代理模式
![image-20210202095609829](/Users/edlison/Library/Application Support/typora-user-images/image-20210202095609829.png)
架构分析
- 抽象角色:用于设计被代理角色的方法。一般使用抽象类或接口。
- 真实角色:被代理的角色。
- 代理角色:对真实角色进行代理,一般还会有一些代理角色附加的业务。
- 客户:访问代理。
好处
- 真实角色只需要专注他需要处理的业务,更加纯粹。
- 公共业务交给代理,实现了业务分工。
- 业务扩展方便,方便集中管理。
缺点
- 一个真实角色就会产生一个代理角色。代码量翻倍。
问题
代理模式使用组合(作为数据成员)的方式,将Host
传入Proxy
。
如果使用继承(extends)的方式,灵活度降低。