代理模式是SpringAOP的底层。代理模式是SpringAOP的底层。
静态代理:
角色分析:
抽象角色:一般会使用接口或者抽象类来解决
真实角色:被代理的角色
代理角色:代理真实的角色,代理真实角色后,一般会做一些附属操作
客户:访问代理对象的人
代理模式的好处:
(1)可以使真实角色的操作更加纯粹,不用去关注一些公共的业务
(2)公共的业务就交给了代理角色,实现了业务的分工
(3)公共业务发生拓展的时候,方便集中管理。
缺点:一个真实角色就会产生一个代理角色,开发效率变低。
解决:动态代理
附加操作
客户:
客户直接接触的是中介租到了房东的房子。
例:已知接口有方法增删改查
现在想要在调用增删改查时打印日志
正常可以直接在每个方法体内加入打印语句
但是这样,就改动了原有的代码。
如果想要不改变原有的代码,可以使用代理模式,增加附属功能
理解:在不改变原有业务的情况下,给业务增加一些拓展功能,使用代理模式