java静态代理
创建一个接口
public interface Person {
void givemoney();
}
实现接口
public class Monitor implements Person {
private String name;
public Monitor (String name ){
this.name = name ;
}
@Override
public void givemoney() {
System.out.println(name+"上交班费");
}
}
代理类
public class MonitorProxy implements Person {
//代理对象
Monitor monitor ;
//只代理Monitor
public MonitorProxy(Person monitor){
if (monitor.getClass() == Monitor.class){
this.monitor = (Monitor) monitor;
}
}
@Override
public void givemoney() {
monitor.givemoney();
}
}
测试类
public class Test {
public static void main(String[] args) {
//被代理的学生张三,他的班费上交有代理对象monitor1(班长)完成
Person zhangsan = new Monitor("张三");
//生成代理对象,并将张三传给代理对象
Person monitor1 = new MonitorProxy(zhangsan);
//班长代理上交班费
monitor1.givemoney();
}
}
运行结果:
参考这位大佬讲他的详细: https://www.cnblogs.com/gonjan-blog/p/6685611.html.