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

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

时间:2024-11-27 17:12:09浏览次数:9  
标签:软件设计 适配器 dog cat 实验 void Dog public

实验8:适配器模式

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

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

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

 

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

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

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

 

1.

 

2.// 猫的行为接口

interface CatBehavior {

    void catchMouse();

}

 

// 狗的行为接口

interface DogBehavior {

    void bark();

}

 

// 猫类

class Cat implements CatBehavior {

    @Override

    public void catchMouse() {

        System.out.println("猫正在抓老鼠");

    }

}

 

// 狗类

class Dog implements DogBehavior {

    @Override

    public void bark() {

        System.out.println("狗正在叫");

    }

}

 

// 猫适配器,使得猫可以学狗叫

class CatAdapter implements DogBehavior {

    private Cat cat;

 

    public CatAdapter(Cat cat) {

        this.cat = cat;

    }

 

    @Override

    public void bark() {

        System.out.println("猫模仿狗叫:喵喵喵");

    }

}

 

// 狗适配器,使得狗可以学猫抓老鼠

class DogAdapter implements CatBehavior {

    private Dog dog;

 

    public DogAdapter(Dog dog) {

        this.dog = dog;

    }

 

    @Override

    public void catchMouse() {

        System.out.println("狗模仿猫抓老鼠:汪汪汪");

    }

}

 

// 测试类

public class AdapterTest {

    public static void main(String[] args) {

        Cat cat = new Cat();

        Dog dog = new Dog();

 

        CatAdapter catAdapter = new CatAdapter(cat);

        DogAdapter dogAdapter = new DogAdapter(dog);

 

        catAdapter.bark(); // 猫模仿狗叫

        dogAdapter.catchMouse(); // 狗模仿猫抓老鼠

    }

}

标签:软件设计,适配器,dog,cat,实验,void,Dog,public
From: https://www.cnblogs.com/xuan-2004/p/18572671

相关文章

  • 软件设计:实验10:组合模式
    实验10:组合模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。实验要求:1.文件的执行不需真正实现,只需简单提......
  • Educator头歌MySQL数据库实验五:授权及回收权限
    在开始讲解以及分享答案之前如果粘贴答案失效,请点击头歌系统右上角的电源键,释放资源重载数据库,再次进入才能正确通过第1关:授予某数据库的所有权限100任务要求参考答案记录评论任务描述相关知识MySql系统库中的权限表访问控制的两个阶段:授予的权限等级:MySQL权限类型grant......
  • GaussDB 数据库实验环境搭建指导
    @目录简介内容描述实验环境说明1GaussDB数据库购买1.1实验介绍1.1.1关于本实验1.1.2实验目的1.2购买GaussDB数据库1.2.1登录华为云1.2.2购买华为云GaussDB数据库简介本指导书适用于在华为云部署购买GaussDB数据库,通过该指导书可以顺利完成GaussDB数据库在华为云的购买。......
  • 软件设计-Tutorial25
    类图:```mermaidclassDiagramclassItem{<<interface>>+accept(Visitorvisitor)}classBook{-Stringtitle+getTitle()+accept(Visitorvisitor)}classElectronic{-String......
  • 上机实验四:SMO 算法实现与测试
    fromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_split,cross_val_score,StratifiedKFoldfromsklearn.svmimportSVCfromsklearn.metricsimportaccuracy_score,precision_score,recall_score,f1_scoreimportnumpyasnp#(1)加载iris数据......
  • 实验 25:访问者模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解访问者模式的动机,掌握该模式的结构;2、能够利用访问者模式法解决实际问题。 [实验任务一]:打包员在我们课堂上的“购物车”的例子中,增加一个新的访问者:打包员,负责对购物车中货物装包。实验要求:1. 画出对应的......
  • 实验 24:模板方法模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解模板方法模式的动机,掌握该模式的结构;2、能够利用模板方法模式解决实际问题。 [实验任务一]:数据库连接对数据库的操作一般包括连接、打开、使用、关闭等步骤,在数据库操作模板类中我们定义了connDB()、openDB()......
  • 20222322 2024-2025-1 《网络与系统攻防技术》实验五实验报告
    1.实验内容1.1实验要求(1)从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取相关信息。(2)尝试获取BBS、论坛、QQ、MSN中某一好友的IP地址,并查询获取该好友所在的具体地理位置。(3)使用nmap开源软件对靶机环境进行扫描,回答以下问题并给出操作命令。(4)使用Ne......
  • 20222326 2024-2025-1 《网络与系统攻防技术》实验五实验报告
    1.实验内容实验具体内容:一、从www.besti.edu.cn、baidu.com、sina.com.cn中选择一个DNS域名进行查询,获取如下信息:DNS注册人及联系方式该域名对应IP地址IP地址注册人及联系方式IP地址所在国家、城市和具体地理位置PS:使用whoisdignslookuptraceroute以及各类......
  • 操作系统实验 4 文件系统设计
    一、实验目的通过一个简单文件系统的设计,加深理解文件系统的内部功能及内部实现。二、主要仪器设备、试剂或材料VMware虚拟机三、实验内容为Linux系统设计一个简单的二级文件系统。要求做到以下几点:(1)可以实现下列几条命令。mkdir创建目录rmdir删除目录c......