桥接设计模式的案例实现

案例实现

根据前面的定义,如果我们使用桥接模式,我们可以将汽车的类型和颜色分别作为两个独立的维度来处理。我们可以创建两个抽象类 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");
    }
}
相关推荐
码匠许师傅16 小时前
【设计模式精讲】24.观察者模式(Observer)
c++·观察者模式·设计模式·uml
小程故事多_8019 小时前
从快速迭代到稳定存续,Google五大设计模式重构长效AI智能体落地逻辑
人工智能·设计模式·重构
码匠许师傅1 天前
【设计模式精讲】22.中介者模式(Mediator)
c++·设计模式·软件工程·uml·中介者模式
2401_868534782 天前
网规备考_2.4 路由协议
c++·设计模式
cpp_learner2 天前
C++ 实现责任链模式(Chain of Responsibility):从一堆 if-else 到可插拔的处理管道
c++·设计模式
码匠许师傅2 天前
【设计模式精讲】23.备忘录模式(Memento)
c++·设计模式·软件工程·uml·备忘录模式
新知图书2 天前
第8章 多智能体协同
人工智能·设计模式·智能体
京师20万禁军教头3 天前
39面向对象(高级)-设计模式
java·开发语言·设计模式
新知图书3 天前
3.5 智能体设计模式1:反应式智能体与自动导航案例
人工智能·设计模式·智能体
码匠许师傅3 天前
【设计模式精讲】21.迭代器模式(Iterator)
c++·设计模式·rpc·迭代器模式·软件工程·uml