静态代理模式-马士兵设计模式教程

public interface Moveable {
	void move();
}


public class Tank implements Moveable{

	@Override
	public void move() {
		System.out.println("我是坦克,所向披靡,进攻中!");
		try {
			Thread.sleep(new Random().nextInt(1000));
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

}


public class ProxyTankTime implements Moveable{
	private Moveable move;
	
	public ProxyTankTime(Moveable move){
		this.move=move;
	}
	
	@Override
	public void move(){
		long start=System.currentTimeMillis();
		System.out.println("坦克开始移动....");
		move.move();
		System.out.println("移动的时间:"+(System.currentTimeMillis()-start));
	}

}


public class Client {
	public static void main(String[] args) {
//		Moveable move=new Tank();
//		move.move();
		/**
		 * 运行结果:
		 * 我是坦克,所向披靡,进攻中!
		 */
		Moveable move=new ProxyTankTime(new Tank());
		move.move();
		/**
		 * 运行结果:
		 * 坦克开始移动....
		 * 我是坦克,所向披靡,进攻中!
		 * 移动的时间:515
		 */
	}
}

本文转自: http://blog.csdn.net/wxwzy738/article/details/7649905

你可能感兴趣的:(静态代理模式-马士兵设计模式教程)