基本介绍:
桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(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("行驶在石子路.");
}
}