桥接模式(BridgePattern)

基本介绍:

    桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式


示例代码:

package org.brando;

/**
 * 
 * 类说明: 测试类
 * @author Brando 2018年3月29日 下午2:03:59
 */
public class Launcher {

	public static void main(String[] args) {
		
		Road road = new CementRoad(new Bus());
        road.driveOnRoad();
		
	}
	
}

package org.brando;

/**
 * 
 * 类说明: 交通工具接口
 * @author Brando 2018年5月2日 下午5:48:17
 */
public interface Vehicle {

	/**
	 * 
	 * 方法说明: 行驶方法
	 * @author Brando 2018年5月2日 下午5:49:01
	 */
	public void drvie();
	
}


package org.brando;

/**
 * 
 * 类说明: 大巴车
 * @author Brando 2018年5月2日 下午5:50:19
 */
public class Bus implements Vehicle {

	@Override
	public void drvie() {
		System.out.println("大巴");
	}

}


package org.brando;

/**
 * 
 * 类说明: 小轿车实现类
 * @author Brando 2018年5月2日 下午5:49:38
 */
public class Car implements Vehicle {

	@Override
	public void drvie() {
		System.out.println("小轿车");
	}

}

package org.brando;

/**
 * 
 * 类说明: 道路-抽象类
 * @author Brando 2018年5月2日 下午5:51:58
 */
public abstract class Road {
	
	/**当前运行的交通工具**/
	protected Vehicle vehicle;
	
	/**
	 * 
	 * 构造说明: 创建道路
	 * @author Brando 2018年5月2日 下午5:51:58
	 * @param vehicle 交通工具
	 */
	public Road(Vehicle vehicle) {
        this.vehicle = vehicle;
    }
	
	/**
	 * 
	 * 方法说明: 交通工具在路上行驶.
	 * @author Brando 2018年5月2日 下午5:53:40
	 */
	public abstract void driveOnRoad();

}

package org.brando;

/**
 * 
 * 类说明: 水泥路
 * @author Brando 2018年5月2日 下午5:54:26
 */
public class CementRoad extends Road {

	public CementRoad(Vehicle vehicle) {
		super(vehicle);
	}

	@Override
	public void driveOnRoad() {
		this.vehicle.drvie();
		System.out.println("行驶在水泥路.");
	}

}

package org.brando;

/**
 * 
 * 类说明: 石子路
 * @author Brando 2018年5月2日 下午5:54:26
 */
public class UnpavedRoad extends Road {

	public UnpavedRoad(Vehicle vehicle) {
		super(vehicle);
	}

	@Override
	public void driveOnRoad() {
		this.vehicle.drvie();
		System.out.println("行驶在石子路.");
	}

}










你可能感兴趣的:(设计模式)