为其他对象提供一种代理以控制对这个对象的访问.
在访问的对象之间添加一个中间层!
/**
* 创建car的接口
* @author fan
*
*/
public interface Car {
public void drive();
}
/**
* 车的实际类
* @author fan
*
*/
public class RealCar implements Car {
private String carname;
public RealCar(String carname) {
this.carname = carname;
start();
}
@Override
public void drive() {
// TODO Auto-generated method stub
System.out.println("driver " + this.carname + "go");
}
public void start() {
// TODO Auto-generated method stub
System.out.println("Starting" + this.carname);
}
}
/**
* 车的代理类
* @author fan
*
*/
public class ProxyCar implements Car {
private String carname;
private RealCar realcar;
public ProxyCar(String carname) {
this.carname = carname;
}
@Override
public void drive() {
// TODO Auto-generated method stub
if(realcar==null){
realcar= new RealCar(carname);
realcar.drive();
}
}
}
/**
* 测试下
* @author fan
*
*/
public class Tets {
public static void main(String[] args) {
Car car = new ProxyCar("benchi");
car.drive();
}
}
//res
Startingbenchi
driver benchigo