首页 > 其他分享 >每日随笔——适配器模式

每日随笔——适配器模式

时间:2023-11-13 20:13:08浏览次数:30  
标签:System 适配器 dog cat public 每日 Override 随笔 void

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

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

实验要求:

1.画出对应的类图;

2.提交源代码;

3.注意编程规范。

类图

 源码:

Cat
package sc8;

public interface cat {

    void catchMouse();
    void cry();
}
Dog
package sc8;

public interface dog {
        void wang();
        void action();

}
concreteCat
package sc8;

public class concreteCat implements cat{
    @Override
    public void catchMouse() {
        System.out.println("猫抓老鼠");
    }
    @Override
    public void cry() {
        System.out.println("猫叫");
    }
}
concreteDog
package sc8;

public class concreteDog implements dog{
    @Override
    public void wang() {
        System.out.println("狗叫");
    }
    @Override
    public void action() {
        System.out.println("狗抓老鼠");
    }
}

adapter
package sc8;

public class adapter implements dog,cat{
    private cat cat;
    private dog dog;
    public cat getCat() {
        return cat;
    }
    public void setCat(cat cat) {
        this.cat = cat;
    }
    public dog getDog() {
        return dog;
    }
    public void setDog(dog dog) {
        this.dog = dog;
    }

    public void cry()
    {
        System.out.print( "猫学");
        dog.wang();
    }
    @Override
    public void catchMouse() {
        cat.catchMouse();
    }
    @Override
    public void wang() {
        dog.wang();
    }
    @Override
    public void action()
    {
        System.out.print( "狗学");
        cat.catchMouse();
    }
}
test
package sc8;

public class test {
    public static void main(String args[])
    {
        cat cat1 = new concreteCat();
        dog dog1 = new concreteDog();
        adapter A1 = new adapter();
        A1.setCat(cat1);
        A1.setDog(dog1);
        cat1 = (cat) A1;
        cat1.cry();
        dog1 = (dog) A1;
        dog1.action();
    }
}

 

标签:System,适配器,dog,cat,public,每日,Override,随笔,void
From: https://www.cnblogs.com/jiacheng-712/p/17815818.html

相关文章

  • 连载随笔:VBA工具No.2:APOX输入数据辅助制作工具
     一、需求背景        2009年,3G(TD-SCDMA)工程大规模上线,无线网络规划工程师在进行TD-SCDMA无线网络仿真工作中,经常为制作APOX(中国移动设计院的3G仿真软件)仿真输入数据伤浪费了宝贵的时间。    通过APOX输入数据辅助制作工具工具可快速实现仿真输入数据格......
  • 软件设计模式学习每日总结-第一天
    Uml类图1、分三层,从上至下分别为类名,属性,方法。2、类与类之间的关系:关联(聚合,组合)、依赖、继承、实现。3、依赖是最低耦合,继承是最高耦合。  七大原则1、开闭原则:程序代码对扩展开发,对修改关闭。2、里氏代换原则:子类可以扩展父类功能,但是不要修改父类原有的功能。3......
  • 11.13每日总结
    今天完成了软件射进和人机交互的部分实验,主要进行了话题的总结,对我们的话题大学生日常消费的调查进行了总结,对照片进行了汇总并且生成了相应的图表。 ......
  • 连载随笔:第一个VBA工具的诞生-站间距计算工具(二)
    四、工具打磨     2008年,结合大家的使用反馈,我不断地修改BUG,调整适用功能,到2008年6月16日发布了V2.4版本。      V2.4版本还增加了3种输出格式。     2008年我到了南昌,由于工作负荷的增加,VBA编程就偃旗息鼓了一段时间。2013年的时候,由于4G(TD-L......
  • 每日总结20231113
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天已经是第十周的周一了,这学期也是度过了一半多的时间了,上午上的第一节课是软件设计模式,写的是外观模式和享元模式。2、今天上午的第二节课上的是人机交互技术,这节课跟着csdn上的文章简单的做了几个界面,也简单的认......
  • 每日总结2023年11月13日
    今天在运行vue项目的时候出现了5:9errorComponentname"Index"shouldalwaysbemulti-wordvue/multi-word-component-names的错误,有类似错误的小伙伴可以打开vue.config.js文件在其中添加lintOnSave:false代码,亲测有效。const{defineConfig}=require('@vue/cli-serv......
  • 新随笔
    CSPT4想出不难。调了一会儿。做出的题还是必须对拍,输不起。线性基query正确写法x=max(x,x^b[i]),if(!(x>>i&1))x^=b[i];常数巨大。集合B中选两数,线性基A中选任意个数:用A消掉B中数的对应位,这样对B'而言,选全A中数一定最优,在B'中trie求两数最大异或和即可。......
  • 博客园发布随笔发布成功后自己能看到 别人那里却显示处于隐藏状态怎么解决
    如果在博客园发布随笔后,你能看到但其他人却显示为隐藏状态,可能存在以下解决方法:检查隐私设置:登录到博客园,并访问个人设置页面。确认你的随笔的隐私设置是公开或对所有人可见,而不是仅限自己或部分访问权限。检查编辑模式:确保你在发布随笔时没有选择草稿或私密模式。有时候误......
  • 随笔 复习 连接池 线程池
    连接池实现思路classConnectPool{public:ConnectPool(intnumber){for(inti=0;i<=number;i++){intfd=socket(); //创建通信的fdconect(); //连接服务器m_list.push(fd);//往容器中存储链接......
  • Spring5学习随笔-Spring5的基本介绍、工厂设计模式
    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】第一章、引言![](https://img2023.cnblogs.com/blog/3321544/202311/3321544-20231113123010602-1325702857.png)SpringIOC工厂是Spring框架中的......