代理模式

151 阅读1分钟

代理模式

一、静态代理

  1. 接口
  2. 真实角色
  3. 代理角色
  4. 客户端访问代理角色

好处:

  • 可以是真实角色的操作更加纯粹,不用去关注一些公共业务
  • 公共的交给代理角色,实现了业务分工
  • 公共业务发生扩展的时候方便集中管理

缺点:

  • 一个真实对象就会产生一个代理对象,代码量会翻倍,开发效率会变低

二、动态代理

  • 动态代理和静态代理角色是一样的
  • 动态代理是动态生成的,不是我们直接写好的
  • 动态代理分为两大类:基于接口的动态代理,基于类的动态代理
    • 基于接口的---jdk动态代理
    • 基于类-------cglib
    • java字节码:javassist

需要了解两个类:proxy(代理),invocationHandler(调用处理程序)

动态代理的好处:

  • 一个动态代理的是一个接口,一般就是对应的一类业务
  • 一个动态代理可以代理多个类,只要是实现了同一个接口即可