代理模式

来源:互联网 发布:开战传奇网站源码 编辑:程序博客网 时间:2024/06/05 13:27

为其他对象提供一种代理以控制对这个对象的访问.
在访问的对象之间添加一个中间层!

/**  * 创建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();    }}//resStartingbenchidriver benchigo