桥接设计模式的案例实现

案例实现

根据前面的定义,如果我们使用桥接模式,我们可以将汽车的类型和颜色分别作为两个独立的维度来处理。我们可以创建两个抽象类 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");
    }
}
相关推荐
St_rive2 小时前
Page Object设计模式
java·开发语言·设计模式
烬羽16 小时前
NestJS 依赖注入:Controller 里那个没有 new 的 service,到底从哪来的?
设计模式·typescript·nestjs
用户938515635071 天前
工厂模式与 Nest.js 核心思想 —— 从蜜雪冰城到企业级架构
后端·设计模式·nestjs
烬羽1 天前
从 nest new 到 Hello World:一个最小 NestJS 项目,讲透工厂 + 装饰器 + 模块化
设计模式·node.js·nestjs
艺艺生辉2 天前
从if-else到策略模式
后端·设计模式
小林ixn2 天前
单例模式:从弹窗管理到全局状态,一个模式搞定
前端·javascript·设计模式
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-17-装饰器模式(源码剖析篇)
java·spring·设计模式·装饰器模式·源码分析·io流
workflower3 天前
案例 :某交通厅基于AI技术的智能安全运营实践
网络·人工智能·安全·设计模式·机器人
AI人工智能+电脑小能手3 天前
大白话说Java设计模式-16-装饰器模式(业务实战篇)
java·设计模式·装饰器模式·功能扩展·动态增强
workflower4 天前
例二:某汽车制造企业深度融合AI智能体,构建园区网络的智能运维体系
人工智能·机器学习·设计模式·机器人·云计算·汽车·制造