静态代理
package cn.chen.proxy;
public interface Moveable {
void move();
}
package cn.chen.proxy;
public class TankTimeProxy implements Moveable{
Moveable tank;
public TankTimeProxy(Moveable tank) {
this.tank = tank;
}
@Override
public void move() {
long start = System.currentTimeMillis();
tank.move();
long end = System.currentTimeMillis();
System.out.println("运行:" + (start - end));
}
}
package cn.chen.proxy;
public class TankLogProxy implements Moveable{
Moveable tank;
public TankLogProxy(Moveable tank) {
this.tank = tank;
}
@Override
public void move() {
System.out.println("tank start...");
tank.move();
System.out.println("tank stop...");
}
}
package cn.chen.proxy;
public class Client {
public static void main(String[] args) {
Tank t = new Tank();
TankLogProxy tlp = new TankLogProxy(t);
TankTimeProxy ttp = new TankTimeProxy(tlp);
ttp.move();
}
}