2023/11/20周一总结

软件设计                  石家庄铁道大学信息学院

 

实验9:桥接模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解桥接模式的动机,掌握该模式的结构;

2、能够利用桥接模式解决实际问题

 

[实验任务一]:两个维度的桥接模式

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

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

1:类图:

 

2:源代码:

#include<iostream>

#include<string>

using namespace std;

class Chexing {

public:

    virtual void run() = 0;

};

class Bus :public Chexing {

public:

    void run() {

        cout << "公共汽车,";

    }

};

class Car :public Chexing {

public:

    void run() {

        cout << "小汽车,";

    }

};

class Road :public Chexing {

public:

    virtual void run() = 0;

};

class LiqingRoad :public Road {

private:

    Chexing* chexing;

public:

    LiqingRoad(Chexing* chexing1)

    {

        chexing = chexing1;

    }

    void run() {

        chexing->run();

        cout << "在沥青路上行驶" << endl;

    }

};

class ShuiniRoad :public Road {

private:

    Chexing* chexing;

public:

    ShuiniRoad(Chexing* chexing1) {

        chexing = chexing1;

    }

    void run() {

        chexing->run();

        cout << "在水泥路上行驶" << endl;

    }

 

};

int main()

{

    Road* road1 = new ShuiniRoad(new Car);

    Road* road2 = new LiqingRoad(new Car);

    Road* road3 = new ShuiniRoad(new Bus);

    Road* road4 = new LiqingRoad(new Bus);

    road1->run();

    road2->run();

    road3->run();

    road4->run();

}

3:运行结果:

 

posted @   liu_ru_jun  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示