桥接设计模式的案例实现

案例实现

根据前面的定义,如果我们使用桥接模式,我们可以将汽车的类型和颜色分别作为两个独立的维度来处理。我们可以创建两个抽象类 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");
    }
}
相关推荐
石一峰6991 天前
C 语言函数设计模式实战经验
c语言·开发语言·设计模式
qq_297574671 天前
设计模式系列文章(基础篇第22篇):访问者模式——分离数据结构与操作,实现灵活扩展
数据结构·设计模式·访问者模式
刀法如飞2 天前
领域驱动 vs 本体驱动:DDD 代码建模与 Ontology 语义建模的对比分析
设计模式·架构设计·领域驱动
我爱cope2 天前
【Agent智能体26 | 多智能体-多智能体工作流】
人工智能·设计模式·语言模型·职场和发展
咖啡八杯2 天前
【无标题】
java·后端·设计模式
折哥的程序人生 · 物流技术专研2 天前
Java 23 种设计模式:从踩坑到精通 | 适配器模式 —— 让不兼容的接口也能一起工作
java·设计模式·面试·适配器模式·单一职责原则
布朗克1682 天前
33 设计模式精讲
java·单例模式·设计模式
geovindu2 天前
python: Generators Pattern
开发语言·python·设计模式·生成器模式
雨浓YN3 天前
基于设计模式的Winform软件框架-01Xml\Log\Ini日志(单例模式+生产者消费者模式)
单例模式·设计模式