动态代理
对象的方法中需要新增内容,如果在方法中直接修改,属于侵入式修改,也不符合开闭原则。
这时候就需要代理,将新增的内容写在代理方法中,在代理方法中调用原本的方法。
以后通过代理来访问对象的方法。

对象想要什么方法被代理,代理中就应该实现什么方法
java中怎么实现代理:类和代理实现同一个接口,接口中定义要被代理的方法
当使用代理调用方法的时候,底层是去执行代理实例中定义的invoke方法,在invoke中新增内容。
1.Java提供了什么API帮我们创建代理?
Proxy.newProxyInstance()
2.newlProxylnstance方法在创建代理时,需要接几个参数,每个参数的含义是什么?
public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
分别是类加载器,代理需要实现的接口,调用处理器(一个接口需要创建该接口的实现类,并且实现接口的方法invoke)
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
return null;
}
当代理对象调用了接口中的任何一个方法都会将该方法以method对象的形式传入 invoke方法
- proxy 代理对象 2.method 被代理对象的方法 3.args 被代理对象 方法被调用时 传入的实参 数组 4.return null;

浙公网安备 33010602011771号