使用Java动态代理:一个简单的代理对象创建案例
在Java中,动态代理主要通过Proxy类和InvocationHandler接口来实现。以下是一个简单的代理对象创建案例:
// 定义目标接口
interface Target {
void method();
}
// 定义实际的实现类
class RealTarget implements Target {
@Override
public void method() {
System.out.println("RealTarget's method called");
}
}
// 定义代理接口和实现类
interface Proxy extends Target {
// 实现InvocationHandler接口中的方法
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("Before calling RealTarget's method");
// 调用实际目标的方法
method.invoke(RealTarget.class, args));
System.out.println("After calling RealTarget's method");
return null;
}
}
// 使用代理对象
public class Main {
public static void main(String[] args) {
Target target = new Proxy();
target.method(); // 调用代理对象的方法
}
}
在这个例子中,我们首先定义了一个目标接口Target
和一个实际的实现类RealTarget
。然后我们定义了一个代理接口Proxy
,并实现了InvocationHandler
接口中的方法,用来在调用真实方法前后进行额外的操作。
最后,在Main
类中,我们创建了一个使用代理对象的目标,并调用了其method()
方法,从而展示了动态代理的使用。
还没有评论,来说两句吧...