一:什么是代理模式
1.定义:为其他对象提供一种代理以控制对这个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。
2.例子:最开始接触JDBC操作数据库的时候,业务层每一个方法都需要做以下几件事
(1)打开数据库连接
(2)执行我们想要的操作
(3)关闭数据库连接
此时,我的核心业务是第(2)步,其余两步为辅助业务。当核心业务与辅助业务写在了一个方法中时。会出现以下问题:
①代码业务冗余
②开关数据库连接大量的重复
3.通过代理模式,我们可以抽取出核心业务与辅助业务
二:静态代理和动态代理
静态代理:一个代理只能服务于一种类型的对象,当有1000个业务时,需要1000个静态代理,不利于业务的扩展。
动态代理:一个代理类可以服务于所有的业务对象。
三:动态代理的实现
1.实现InvocationHandle接口,该接口所在位置为:java.lang.reflect.InvocationHandler
2.该接口中有一个方法<