Spring_代理模式

10 代理模式

为什么要学习代理模式?

  • 这就是Spring AOP的底层!

代理模式的分类:

  • 静态代理

  • 动态代理

10.1 静态代理

角色分析:

  • 抽象角色:一般会使用接口或者抽象类来解决

  • 真实角色:被代理的角色

  • 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作

  • 客户:访问代理对象的人

 

代理模式的好处:

  • 可以是真实角色的操作更加纯粹!不用去关注一些公共的业务

  • 公共业务就交给了代理角色!实现了业务的分工

  • 公共业务发生扩展的时候,方便集中管理!

缺点:

  • 一个真实角色就会产色一个代理角色,代码量会翻倍,开发效率会变低。

 

10.2 动态代理

  • 动态代理和静态代理角色一样

  • 动态代理的代理类是动态生成的,不是我们直接写好的!

  • 动态代理分为两大类

    • 基于接口的动态代理---JDK

    • 基于类的动态代理---cglib

    • Java字节码实现---javassist

 

需要了解两个类: Proxy、InvocationHandler

动态代理的好处:

  • 一个动态代理类代理的是一个接口,一般就是对应的一类业务

  • 一个动态代理类可以代理多个类,只要是实现了同一个接口即可!

原文地址:https://www.cnblogs.com/Gazikel/p/14907340.html