代理模式
一、静态代理
- 接口
- 真实角色
- 代理角色
- 客户端访问代理角色
好处:
- 可以是真实角色的操作更加纯粹,不用去关注一些公共业务
- 公共的交给代理角色,实现了业务分工
- 公共业务发生扩展的时候方便集中管理
缺点:
- 一个真实对象就会产生一个代理对象,代码量会翻倍,开发效率会变低
二、动态代理
- 动态代理和静态代理角色是一样的
- 动态代理是动态生成的,不是我们直接写好的
- 动态代理分为两大类:基于接口的动态代理,基于类的动态代理
- 基于接口的---jdk动态代理
- 基于类-------cglib
- java字节码:javassist
需要了解两个类:proxy(代理),invocationHandler(调用处理程序)
动态代理的好处:
- 一个动态代理的是一个接口,一般就是对应的一类业务
- 一个动态代理可以代理多个类,只要是实现了同一个接口即可