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