1.代理模式
核心作用:通过代理,控制对对象的访问
代理模式大致分为两类: 静态代理和动态代理
[注]:动态代理又可分为4种:JDK自带的动态代理、javaassist字节码操作库实现、CGLIB和ASM(底层使用指令,可维护性差)
1.1代理模式的三个要素
A、抽象的类或者接口 ---完成一件怎样的事情
B、被代理对象---事情具体操作内容
C、代理对象----帮助我们完成事情的同时可以增加其它功能
类比现实生活中的例子: 我们找中介租房子
A、抽象的类或者接口--想要租房子的人
B、被代理对象---房东
C、代理对象---中介
1.2代理模式的好处
A、房东可以安心的做自己的事情--(被代理对象可以做自己的事情)
B、我们有了问题直接找中介---(被代理对象变得比较的安全)
C、可以增强代码的扩展性
1.3静态代理模式缺点
随着被代理对象的增多,发现代理对象的压力越来越大,而且里面书写的代码也是比较臃肿的。
1.4JDK代理模式的缺点
我们发现JDK代理模式是必须有接口的操作,如果没有对应的接口,这个时候JDK代理就没有办法使用。
1.5代理模式在应用框架中的应用场景
--数据库连接池关闭处理
--Hibernate中延时加载的实现
--MyBatis中实现拦截器插件
--AspectJ的实现
--Spring中AOP的实现