方式一: 静态代理,通过某静态方法,返回类对象
public class mediation {
//聚合调用
private static bus bus=new bus();
public static void fing() {
System.out.println("其他逻辑");
bus.fing();
}
JDK代理
//提供一接口
public interface in {
void fing();
}
//实现类
public class bus implements in{
@Override
public void fing() {
System.out.println("提供。。。");
}
}
JDK代理类
DK动态代理
需要实现类对应的接口
*/
public class jdk {
//初始化需要代理类对象
private bus bus=new bus();
//多态
public in geyin(Object i){
//类加载器
//实现类的接口的字节码对象
//处理程序
//是一个工厂类Proxy
in in=(in)Proxy.newProxyInstance(i.getClass().getClassLoader(),i.getClass().getInterfaces()
new InvocationHandler() {
@Override
// proxy:代表动态代理对象
// * method:代表正在执行的方法
// * args:代表调用目标方法时传入的实参
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("代理类实现");
return method.invoke(i, args);
}
});
return in;
}