桥接设计模式的案例实现
案例实现
根据前面的定义,如果我们使用桥接模式,我们可以将汽车的类型和颜色分别作为两个独立的维度来处理。我们可以创建两个抽象类 Car 和 Color,并为每种汽车类型和颜色创建具体的子类。然后,我们可以使用桥接模式将汽车类型和颜色抽象概念连接起来。如下图所示:
通过使用桥接模式,我们可以轻松地添加新的汽车类型和颜色,而不需要修改已有的代码。例如,我们可以添加 truck 类来表示卡车,并且可以在不修改现有代码的情况下,将卡车与任何颜色进行组合。
具体代码如下所示:
抽象卡车类型
ublic abstract class AbstractCar { private AbstractColor color; public AbstractCar(AbstractColor color) { this.color = color; } public abstract void drawCar(); public void drawColor() { color.drawColor(); } }抽象颜色
public abstract class AbstractColor { public abstract void drawColor(); }具体公交车
public class Bus extends AbstractCar{ public Bus(AbstractColor color) { super(color); } @Override public void drawCar() { System.out.println("draw bus car"); } }具体卡车
public class Truck extends AbstractCar{ public Truck(AbstractColor color) { super(color); } @Override public void drawCar() { System.out.println("draw truck car"); } }蓝色
public class Blue extends AbstractColor{ @Override public void drawColor() { System.out.println("draw blue color"); } }红色
public class Red extends AbstractColor { @Override public void drawColor() { System.out.println("draw red color"); } }