首页 > 其他分享 >桥接模式

桥接模式

时间:2022-10-10 09:47:07浏览次数:42  
标签:桥接 bus 模式 runVehicle Vehicle new public car

用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。

 

 

 

//
// Created by 54417 on 2022-10-06.
//
#include <iostream>

using namespace std;
//抽象交通工具类,内部定义一个纯虚函数run
class Vehicle {
public:
    virtual void run() = 0;
};

class Car : public Vehicle {
public:
    void run() override {
        cout << "小轿车在跑" << endl;
    }
};

class Bus : public Vehicle {
public:
    void run() override {
        cout << "巴士在跑" << endl;
    }
};
//抽线路类,
class Road {
protected:
    Vehicle *vehicle1{};
public:
    virtual void runVehicle(Vehicle *vehicle) = 0;
};
//水泥路类
class Cement : public Road {
public:
    void runVehicle(Vehicle *vehicle) override {
        this->vehicle1=vehicle;
        cout<<"在泥泞路上----";
        vehicle1->run();
    }
};
//沥青类
class Asphalt :public Road{
public:
    void runVehicle(Vehicle *vehicle) override{
        this->vehicle1=vehicle;
        cout<<"在沥青路上----";
        vehicle1->run();
    }
};
int main() {
    Road *cement=new Cement();
    Road *asphalt=new Asphalt();
    Vehicle *car =new Car();
    Vehicle *bus=new Bus();
    cement->runVehicle(car);
    cement->runVehicle(bus);
    asphalt->runVehicle(car);
    asphalt->runVehicle(bus);
    return 0;
}

 

  

 

标签:桥接,bus,模式,runVehicle,Vehicle,new,public,car
From: https://www.cnblogs.com/tk203/p/16774536.html

相关文章

  • 建造者模式(二)
    #include<iostream>#include<string>usingnamespacestd;//产品类——Computer类classComputer{private:stringCPU;stringRAM;stringHard;......
  • 一起学习设计模式:备忘录模式——软件的“后悔药”
    备忘录模式——软件的“后悔药”备忘录是一种行为设计模式,允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态,并将其保存下来。备忘录模式就像是软件中的“后悔药......
  • 单例模式C++
    [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。  #include<iostream>#include<string>#include<string.h>usingnamespac......
  • 设计模式-行为型模式之模板方法
    定义抽象基类,规范接口内部方法执行顺序在进阶篇中,没专门提过抽象基类,在这里顺便就提一下抽象基类的核心特征:不能被直接实例化相反,抽象基类和元类一样,一般都被当......
  • 抽象工厂模式C++
    [实验任务一]:人与肤色使用抽象工厂模式,完成下述产品等级结构:   #include<iostream>usingnamespacestd;//抽象产品类——Man类classMan{public:vi......
  • 建造者模式java
    [实验任务一]:计算机组装使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机......
  • 建造者模式C++
    [实验任务一]:计算机组装使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机......
  • 原型模式C++
    [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用指针和动态申请支持向量长度的改变,使用浅克隆和深克隆复制向量类,比较这两种克隆方式的异同。#include<iostre......
  • 02@Docker网络介绍及网络模式的使用
    文章目录​​Docker网络的介绍​​​​一、Docker网络原理​​​​1、docker网络介绍​​​​2、Docker网络原理​​​​二、docker网络基础​​​​【网络命名空间】​​​......
  • 单例模式
    publicclassSingleton{privatestaticclassSingletonHolder{privatestaticfinalSingletonINSTANCE=newSingleton();}privateS......