案例实现
根据前面的定义,如果我们使用桥接模式,我们可以将汽车的类型和颜色分别作为两个独立的维度来处理。我们可以创建两个抽象类 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");
}
}