创建目标接口
public interface TargetInterface {
public void sayHello(String name);
public void sayThanks(String name);
}
目标接口实现类
public class TargetInterfaceImpl implements TargetInterface{
@Override
public void sayHello(String name) {
System.out.println("sayHello, " + name);
}
@Override
public void sayThanks(String name) {
System.out.println("sayThanks, " + name);
}
}
目标接口代理类
public class TargetProxy implements TargetInterface {
// 持有目标接口的引用
private TargetInterface targetInterface;
// 构造方法初始化
public TargetProxy(TargetInterface targetInterface) {
this.targetInterface = targetInterface;
}
@Override
public void sayHello(String name) {
System.out.println("start.........");
// 中间调用目标接口的真正的实现
targetInterface.sayHello(name);
System.out.println("end.........");
}
@Override
public void sayThanks(String name) {
System.out.println("start.........");
// 中间调用目标接口的真正的实现
targetInterface.sayThanks(name);
System.out.println("end.........");
}
测试类
public class Test1 {
public static void main(String[] args) {
// 没有代理的情况
TargetInterface targetInterface = new TargetInterfaceImpl();
targetInterface.sayHello("张三");
System.out.println("--------------分界线----------");
// 实现静态代理的情况
TargetProxy targetProxy = new TargetProxy(new TargetInterfaceImpl());
targetProxy.sayHello("李四");
}
}
输出结果
Java JDK动态代理_Excellent999的博客-优快云博客