首页 > 其他分享 >软件设计实验8:适配器模式

软件设计实验8:适配器模式

时间:2023-11-07 22:01:32浏览次数:31  
标签:CatImpl cout 软件设计 适配器 virtual public 实验 void

实验8:适配器模式

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

1、理解适配器模式的动机,掌握该模式的结构;

2、能够利用适配器模式解决实际问题。

 

[实验任务一]:双向适配器

实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。

实验要求:

1. 画出对应的类图;

 

2. 提交源代码;

 

#include <iostream>

#include <string>

 

using namespace std;

 

class Cat

{

public:

    virtual void catlook(){}

    virtual void catchM(){}

};

 

class CatImpl:public Cat

{

public:

    void catlook()

    {

        cout<<"猫的样子"<<endl;

    }

    void catchM()

    {

        cout<<"猫抓老鼠"<<endl;

    }

};

 

class Dog

{

public:

    virtual void doglook(){}

    virtual void wang(){}

};

 

class DogImpl:public Dog

{

public:

    void doglook()

    {

        cout<<"狗的样子"<<endl;

    }

    void wang()

    {

        cout<<"狗汪汪叫"<<endl;

    }

};

 

 

class Adapter : public Cat,Dog

{

private:

    Dog *DogImpl;

    Cat *CatImpl;

public:

    Adapter(Dog *DogImp,Cat *CatImp)

    {

        DogImpl=DogImp;

        CatImpl=CatImp;

    }

    virtual void doglook()

    {

        cout<<"狗模仿";

        CatImpl->catlook();

    }

    virtual void wang()

    {

        cout<<"狗模仿";

        CatImpl->catchM();

    }

    virtual void catlook()

    {

        cout<<"猫模仿";

        DogImpl->doglook();

    }

    virtual void catchM()

    {

        cout<<"猫模仿";

        DogImpl->wang();

    }

};

 

 

int main()

{

    DogImpl *DogImp=new DogImpl();

    CatImpl *CatImp=new CatImpl();

    Adapter *adapter = new Adapter(DogImp,CatImp);

    adapter->catlook();

    adapter->catchM();

    cout<<"**************"<<endl;

    adapter->doglook();

    adapter->wang();

 

    return 0;

}

 

 

3.注意编程规范。

标签:CatImpl,cout,软件设计,适配器,virtual,public,实验,void
From: https://www.cnblogs.com/DREAM2021/p/17816139.html

相关文章

  • 软件设计实验9:桥接模式
    实验9:桥接模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求......
  • 渗透测试第一次实验
     虚拟机和主机链接方式:桥接模式:就可与i将虚拟机看成是局域网中的独立主机(如下图,AB就是使用NAT模式)NAT模式:则是将物理机当作为路由器,虚拟机为内网中的一台主机(如下图,AC就是使用NAT模式)Host模式:就是将虚拟机和物理机看成一个网络,与外界隔绝        ......
  • SQL 实验
    登入mysql-uroot-hlocalhost-p123456建库createdatabasemysql_test;usemysql_test;基础建表createtableifnotexistsstudent_info( idintprimarykeyauto_increment,numberintnotnullunique,namevarchar(100)notnull);createtableifnot......
  • 20231107学习总结-大型数据库-实验1.熟悉常用的Linux操作和Hadoop操作
    实验1熟悉常用的Linux操作和Hadoop操作1.实验目的Hadoop运行在Linux系统上,因此,需要学习实践一些常用的Linux命令。本实验旨在熟悉常用的Linux操作和Hadoop操作,为顺利开展后续其他实验奠定基础。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3。3.......
  • 大型数据库实验一
    Linux操作和Hadoop操作实验报告一、熟悉的Linux操作1、切换到目录“/usr/local”2、切换到当前目录的上一级目录3、切换到当前登录系统的Linux系统的用户的自己的主文件夹4、查看/usr目录下的所有文件和目录5、在/tmp目录下,新建一个名为a的目录,并查看/tmp目录下已经有了......
  • 实验三
    #include<stdio.h>#include<stdlib.h>#include<time.h>#include<windows.h>#defineN80voidprint_text(intline,intcol,chartext[]);//函数声明voidprint_spaces(intn);//函数声明voidprint_blank_lines(intn);//函数声明intmain(){......
  • 软件设计3
    [实验任务一]:加密算法目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgorithm)国际数据加密算法等,请用工厂方法实现加密算法系统。实验要求:1. 画出对应的类图;  2. 提交该系统的代码,该系统务必是一个可以能够直接使用的系统,查阅......
  • 计网实验3
    1.建立网络拓扑执行dev3.sh脚本2.查看建立的NS列表3.查看各NS内的网络接口配置4.查看交换机桥接状态5.为虚拟网络拓扑中的各路由器配置静态路由6.关闭网卡offload功能,将运输层封装时需要的计算还给CPU7.打开两个终端模拟两个主机ns56A和ns57C8.在ns57C上启动抓包......
  • 实验5---Swing UI设计(简易计算器)
    一、实验目的本实验的目的是掌握JAVA容器类JFrame和JPanel的使用;掌握Swing常用布局的使用;掌握常用可视组件的使用。二、实验内容完成一个简单的计算器的功能。实现的效果图如下所示:  计算器实现的计算功能为:加、减、乘、除法、求余;“C”为清除,“<-“为退格等功能。三、......
  • 数据库实验一
    补tac~/.bashrcmore~/.bashrchead-n20~/.bashrchead-n50~/.bashrc|tail-n20tail-n20~/.bashrctail-n+50~/.bashrctouch/tmp/hellols-l/tmp/hellotouch-d"5daysago"/tmp/hellols-l/tmp/hellochownroot/tmp/hellols-l/tmp/he......