首页 > 其他分享 >实验9:桥接模式

实验9:桥接模式

时间:2023-11-29 21:44:36浏览次数:35  
标签:transportation 桥接 void 模式 实验 Transportation public Road

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

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

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

 

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

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

#include <iostream>

 

using namespace std;

 

class Transportation

{

public:

    virtual void drive(){}

};

 

class Car:public Transportation

{

public:

    void drive()

    {

        cout<<"小轿车";

    }

};

 

class Bus:public Transportation

{

public:

    void drive()

    {

        cout<<"大巴";

    }

};

 

class Road

{

public:

    Transportation* transportation;

 

    Road(Transportation* transportation)

    {

        this->transportation=transportation;

    }

    virtual void driveOnRoad(){}

};

 

class CementRoad:public Road

{

public:

    CementRoad(Transportation* transportation):Road(transportation)

    {

 

    }

 

    void driveOnRoad()

    {

        transportation->drive();

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

    }

};

 

class BituminousRoad:public Road

{

    public:

    BituminousRoad(Transportation* transportation):Road(transportation)

    {

 

    }

    void driveOnRoad()

    {

        transportation->drive();

        cout<<"行驶在柏油路"<<endl;

    }

};

 

 

int main()

{

    Transportation* transportation;

    Car car=Car();

    transportation=&car;

    CementRoad(transportation).driveOnRoad();

}

标签:transportation,桥接,void,模式,实验,Transportation,public,Road
From: https://www.cnblogs.com/lin513/p/17865968.html

相关文章

  • 实验4
    Textcoder.hpp#include<iostream>#include<string>usingnamespacestd;classTextcoder{public:Textcoder(stringt);stringget_ciphertext();stringget_deciphertext();private:stringtext;voidencoder();voiddeco......
  • 实验10:组合模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。1.文件的执行不需真正实现,只需简单提示即可;2.提交源代码;3.......
  • 实验5
    实验任务1.1实验任务1.2实验任务2.1实验任务2.2实验任务3实验任务4.1 实验任务4.2 实验任务5.1实验任务5.2 实验任务6  实验任务7 ......
  • FPGA 实现SPI 主机双工通信 CS前后肩可调 操作时钟频率可调 ,SPI模式可调,传输位宽可
    1//testbench2`timescale1ns/1ns3modulelcd_spi_m_tb();4regrst_n_i;5regspi_clkx_i;6reg[31:0]spi_data_i;7regspi_start;8regspi_miso_r1,spi_miso_r2;9wirespi_miso_i;10wire[0:0]spi_done;11wir......
  • 实验八第二部分所需要的依赖
    <repositories><repository><id>alimaven</id><name>aliyunmaven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url></repository>......
  • 大型数据库实验八--Flink初级编程实践
    ......
  • 虚拟机进行实验八遇到的坑(一)
    idea依赖下载报错//引入阿里云镜像下载就ok啦~~~<repositories><repository><id>alimaven</id><name>aliyunmaven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url......
  • MFC的CFile类以追加模式写文件
    CFile类的Open函数有CFile::modeNoTruncate模式,该模式是非截断的意思,再配合CFile::modeCreate,意味着如果文件不存在,则创建,如果文件存在,则不会将文件内容清空。当对文件进行追加写入时,有一个小细节就是打开文件模式中虽然添加了这两种OpenFlag,但是文件指针并未移动到末尾,因此追加出......
  • 详解Redis三大集群模式,轻松实现高可用!
    原文:https://zhuanlan.zhihu.com/p/624144774?utm_id=01.Redis集群简介1.1什么是Redis集群Redis集群是一种通过将多个Redis节点连接在一起以实现高可用性、数据分片和负载均衡的技术。它允许Redis在不同节点上同时提供服务,提高整体性能和可靠性。根据搭建的方式和集群的特性,R......
  • 算法实验报告1
    算法实验报告1发布地址(方便阅读):https://cmd.dayi.ink/3VqGmm4dRamR85T2ptXCsQhttps://blog.dayi.ink/?p=91<>P183习题-T1题目描述给定一个数字n和子集1,2,3,...,n-1,请用数组输出所有不同的划分方式。4有四种划分方式:1+1+1+11+1+2.1+3.2+2.5有六种划分方式:1+1+1+1+1.1+1+1+2,1+1+3,1+2+2,1+4,3+2......