桥接设计模式的案例实现

案例实现

根据前面的定义,如果我们使用桥接模式,我们可以将汽车的类型和颜色分别作为两个独立的维度来处理。我们可以创建两个抽象类 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");
    }
}
相关推荐
是2的10次方啊9 小时前
设计模式与生活①:你的脸,为什么不能有第二个?
设计模式
高晶11 小时前
ARM 嵌入式 Linux 命令系统 BusyBox 实战指南
linux·设计模式·程序员
高晶11 小时前
语音合成与变声技术十大业务场景落地实战:从电商直播到规模化生产
设计模式·程序员
博风14 小时前
19、设计模式应用举例:桥接模式:制作电视节目
设计模式·桥接模式
知守观14 小时前
从 4 套 PDF 库的混战,聊聊老项目的依赖管理与“静默失败”
java·后端·设计模式
geovindu1 天前
rust: Mediator Pattern
开发语言·后端·设计模式·rust·中介者模式·行为模式
SENKS_DIGITAL2 天前
金属加工遇上数字化:通快展厅里的工业蜕变-森克思科技
科技·设计模式·展厅设计·展馆设计·科技展厅设计·展览设计·企业展厅设计
flower9803232 天前
C++消息总线软件开发框架AI重构版
c++·设计模式·架构
zzu123zsw3 天前
业务拆分后的治理深水区:解构企业级微服务六大核心设计模式与高可用落真实践
微服务·设计模式·架构·高可用·微服务架构设计
牧瀬クリスだ3 天前
观察者模式:一个对象变化,一群对象自动响应
java·观察者模式·设计模式