SpringAOP - Start

静态代理模式

![image-20210202095609829](/Users/edlison/Library/Application Support/typora-user-images/image-20210202095609829.png)

架构分析

  • 抽象角色:用于设计被代理角色的方法。一般使用抽象类或接口。
  • 真实角色:被代理的角色。
  • 代理角色:对真实角色进行代理,一般还会有一些代理角色附加的业务。
  • 客户:访问代理。

好处

  • 真实角色只需要专注他需要处理的业务,更加纯粹。
  • 公共业务交给代理,实现了业务分工
  • 业务扩展方便,方便集中管理

缺点

  • 一个真实角色就会产生一个代理角色。代码量翻倍。

问题

代理模式使用组合(作为数据成员)的方式,将Host传入Proxy

如果使用继承(extends)的方式,灵活度降低。