代理模式分为:动态代理、静态代理。
代理模式的UML类图:
代码:
package com.jxufe.proxy;
/**
* 这是一个接口类
* @author jack
* @version 创建时间:2016年5月6日 上午10:37:32
*
*/
public interface FlyAble {
public void fly();
}
package com.jxufe.proxy;
/**
* 委托类
* @author jack
* @version 创建时间:2016年5月6日 上午10:39:08
*
*/
public class AirPlane implements FlyAble {
public void fly() {
System.out.println("飞机飞行中。。。。。。。。。。");
}
}
package com.jxufe.proxy;
/**
* 代理类
* @author jack
* @version 创建时间:2016年5月6日 上午10:42:41
*
*/
public class ProxyRoute implements FlyAble {
private AirPlane plane;
public ProxyRoute(AirPlane plane) {
this.plane = plane;
}
public void fly() {
System.out.println("开始起飞记录行程。");
plane.fly();
System.out.println("飞机降落共行驶1000km");
}
}
package com.jxufe.proxy;
/**
* 测试类
* @author jack
* @version 创建时间:2016年5月6日 上午10:47:23
*
*/
public class ProxyRouteTesst {
public static void main(String[] args) {
AirPlane plane = new AirPlane();
FlyAble aircraft = new ProxyRoute(plane);
aircraft.fly();
}
}