1、什么是代理模式
答:
为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用
2、代理模式的实现
答:
代理模式的实现方式有两种:
① 静态代理
② 动态代理
3、动态代理的机制是什么
答:
动态代理具有更强的灵活性,因为它不用在我们设计实现的时候就指定某一个代理类来代理哪一个被代理对象,我们可以把这种指定延迟到程序运行时由JVM来实现
4、对比静态代理,动态代理有什么好处
答:
动态代理机制的好处:
① 减少编程的工作量(实现多种代理处理逻辑,无需写多重代理类,只需要写多个代理处理器即可)
② 增强系统的扩展性和维护性
【注意】动态代理有别于静态代理,是根据代理的对象动态创建代理类。这样可以避免静态代理中代理类接口过多的问题。动态代理是实现方式,就是通过反射来实现的
5、大致写出动态代理的实现步骤
答:
① 编写一个委托类的接口
② 实现一个真正的委托类
③ 创建一个动态代理类,实现InvocationHandler接口,并重写invoke方法
④ 创建动态代理的对象。
6、创建动态代理的对象时,在使用newProxyInstance( ) 方法中的参数有哪些
答:
newProxyInstance( ) 方法中的三个参数分别是:
ClassLoader loader 表示当前使用到的appClassloader
Class<?>[] interfaces 表示目标对象实现的一组接口
InvocationHandler h 表示当前的InvocationHandler实现实例对象
|
|