首页 > 其他分享 >适配器模式

适配器模式

时间:2022-10-13 10:35:44浏览次数:39  
标签:适配器 dog 模式 cat public Dog Cat void

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

 

 

public class Client {
    public static void main(String[] args) {
        Adapter adapter = new Adapter();
        adapter.setCatAdapter(new ConcreteCat());
        Dog dog = adapter;
        dog.wang();

        adapter.setDogAdapter(new ConcreteDog());

        Cat cat = adapter;
        cat.catchMouse();

    }
}


public interface Dog {
    void wang();
}

public class ConcreteDog implements Dog {
    @Override
    public void wang() {
        System.out.println("狗汪汪叫");
    }
}


public interface Cat {
    void catchMouse();
}


public class ConcreteCat implements Cat {

    @Override
    public void catchMouse() {
        System.out.println("猫抓老鼠");
    }
}


public class Adapter implements Dog, Cat {
    private Dog dog;
    private Cat cat;

    public void setDogAdapter(Dog dog) {
        this.dog = dog;
    }

    public void setCatAdapter(Cat cat) {
        this.cat = cat;
    }

    @Override
    public void catchMouse() {
        System.out.print("猫学会了");
        dog.wang();
    }

    @Override
    public void wang() {
        System.out.print("狗学会了");
        cat.catchMouse();
    }
}

 

标签:适配器,dog,模式,cat,public,Dog,Cat,void
From: https://www.cnblogs.com/tk203/p/16787257.html

相关文章

  • 搭建Hadoop伪分布模式环境实验
    我使用的是Finalshell,不是Xshell,各位可以参考一下1.首先,开启虚拟机,等待连接成功,输入"start-all.sh"启动HDFS,Yarn,然后输入jps查看进程是否正常2.打开HDFSWeb界面,在本地......
  • Unity泛型单例模式
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;publicclassSingleton<T>:MonoBehaviourwhereT:Singleton<T......
  • 【GAN优化】解决模式崩溃的两条思路:改进优化和网络架构
    今天讲述的内容仍然是GAN中的模式崩溃问题,首先将说明模式崩溃问题的本质,并介绍两种解决模式崩溃问题的思路,然后将介绍一种简单而有效的解决方案MAD-GAN,最后一部分将给出MAD-......
  • 设计模式进阶
    1.请列举出在JDK中几个常用的设计模式?单例模式(Singletonpattern)用于Runtime,Calendar和其他的一些类中。工厂模式(Factorypattern)被用于各种不可变的类如Boolean,像Boo......
  • 构造者模式(建造者)
    构造者模式的定义      是指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。通俗的说,......
  • 命令模式
    命令模式命令接口packagecommandtypecommandinterface{Execute()}命令执行者packagecommandfuncNewSystem()*system{ return&system{}}func(......
  • wxjava服务商模式记录
    1.微信支付服务商必须绑定与小程序appid的授权关系。产品中心-appid账号管理-关联更多。然后在小程序登录--微信支付--确认。2.服务商功能-开发配置-特约商户appid配置-......
  • 模式匹配之BF
    BF1.BF算法1.1算法思想判断是否为空串判断模式串T是否长于主串S初始化:主串S和模式串T均从头开始,用指示器i,j分别指向S,T需要比较的字符两串逐位比较:当S和T均没......
  • MVVM模式下Telerik.RadGridView控件中RadButton按钮绑定命令无法触发
    场景数据维护页面,数据内容使用Telerik.RadGridView控件,通过点击下方newrow添加数据,误操作需要删除一行信息;希望点击RadButton后执行对应的操作,但是设置RadButton的Comm......
  • 初识设计模式 - 享元模式
    简介古代的活字印刷术就有点像享元模式,活字印刷就是将每个字模做出来,再印刷时再选取需要的字模到印刷板上,这样就构成了一页书的印刷板。这样的活字印刷大大提升了效率,减少......