某城市正在创建“厕所工程计划”,要求男生只能上男厕,女生只能上女厕。

一、厕所接口

此时,我们定义一个厕所接口IWC。

public interface IWC {/*** 男厕、女厕*/public void ManWC();public void WomanWC();
}

二、男人上厕所。

男人上厕所时,我们男人类(Man)要实现厕所接口(IWC)。

那么,问题来了,我男人上厕所,实现了ManWC男厕方法,还要实现厕所接口的WomanWC女厕方法吗???

答案显而易见,我们肯定不需要实现WomanWC女厕方法,但是我们继承了接口,如何避免“实现接口中所有的方法”这一准则呢?

三、厕所适配器登场

适配器的出现,缓解了这一尴尬局面。

public abstract class WCAdapter implements IWC {public AbstractWC() {// TODO Auto-generated constructor stub
    }@Overridepublic void ManWC() {// TODO Auto-generated method stub
}@Overridepublic void WomanWC() {// TODO Auto-generated method stub
}}

此时,我们用厕所适配器(WCAdapter)来实现接口中所有的方法。但是方法体为空。

另外厕所适配器(WCAdapter)用抽象类的原因也很简单,适配器中所有方法的方法体都为空,实例化适配器并调用方法没有任何意义,因此我们不允许实例化适配器

四、男人类(Man)继承适配器

public class Man extends WCAdapter {public Man() {// TODO Auto-generated constructor stub
    }public void ManWC() {System.out.println("我去男厕");}}

此时,男人类继承厕所适配器(WCAdapter),我们只需要重写适配器中的ManWC,即男厕方法,即可。

此时男人类,并没有直接实现了,厕所接口的WomanWC女厕方法。

五、运行

public class Main {public static void main(String[] args) {IWC wc = new Man();wc.ManWC();//我去男厕
    }}

六、总结

适配器模式,在java源码框架中得到了大量的使用。

比如,WindowAdapter适配器,继承了WindowListener接口,

WindowListener接口中,我们常用的函数也就是窗体关闭函数windowClosing,

我们仅使用一个windowClosing函数,就要完全重写WindowListener接口吗?

因此,适配器WindowAdapter出现了。

另外还有Servlet接口,以及适配器GenericServlet等等。

转载于:https://www.cnblogs.com/zh1996/p/10348727.html

适配器模式 - 上厕所案例相关推荐

  1. ChatGPT接入Siri指南来了/必应下载量进前五/ 特斯拉被曝监控员工致不敢上厕所…今日更多新鲜事在此...

    日报君 发自 凹非寺 量子位 | 公众号 QbitAI 大家好,今天是2月15日星期三. 情人节过了,仍然祝你快乐- 科技圈其他新鲜事儿,来咯. 必应下载量激增,与谷歌差距缩小 必应搜索在引入Chat ...

  2. 某程序员统计同事工作时间上厕所次数!有人一天去两次,有人一天去十次!楼主:懒人屎尿多!网友:最闲的是你!...

    请点击上面 一键关注! 先给大家提个醒,这是一篇有味道的推送. 一个程序员工位离厕所比较近,他竟然做了这么一个统计--研究同事工作时间去厕所的次数.不仅统计人数多,统计数据精确,还给做了张表格,真把这 ...

  3. 因肠道疾病经常上厕所,她被亚马逊解雇了

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 一名自称患有肠道疾病的前亚马逊员工指责该公司解雇她,原因是她经常上厕所. 今年6月,这起诉讼在新泽西高等法院提起. 要点: 一名 ...

  4. 如何训练孩子上厕所(初级篇)

    开始前准备 在开始训练自闭症孩子之前,家长首先思考以下几个问题,可能有助于为你的孩子找到不同的解决办法. (1)健康问题:孩子可能由于身体或疾病因素导致上厕所困难,家长需要向儿科医生咨询. (2)语言 ...

  5. 文件上传案例优化(文件命名循环接收多线程提高效率)

    package com.learn.demo03.FileUpload;import java.io.FileInputStream; import java.io.IOException; impo ...

  6. 文件上传案例的服务器端

    package com.learn.demo02.FileUpload;import java.io.File; import java.io.FileOutputStream; import jav ...

  7. 文件上传案例的客户端

    package com.learn.demo02.FileUpload;import java.io.FileInputStream; import java.io.IOException; impo ...

  8. 据说很多女生都想知道男生是如何上厕所的?

    1 老婆守恒定律 (素材来源网络,侵删) ▼ 2 捡破烂的狗子 (via.李市民,侵删) ▼ 3 见过最搞笑的买药经历 (素材来源豆瓣@yuyii,侵删) ▼ 4 男朋友的室友可以多粘人? (via. ...

  9. 使用ueditor实现多图片上传案例

    UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量.可定制.用户体验优秀等特点.开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用.百度UEditor的推出 ...

最新文章

  1. idea普通java项目引入lombok_Intellij IDEA 安装lombok及使用详解
  2. LA 6474 Drop Zone (最小割)
  3. 从零单排学Redis【白银】
  4. VTK:PolyData之PointLocatorVisualization
  5. mysql数据库局限性_Mysql分区表局限性总结
  6. tensorflow源码编译教程_源码编译安装tensorflow 1.8
  7. oracle 调用java 类_oracle数据库PL SQL调用Java类程序代码
  8. 以编程方式管理IIS
  9. BZOJ4892:[TJOI2017]dna(hash)
  10. 【算法笔记+SGU275+HDU3949】线性基(XOR,求n个数异或得到的第k小的数)
  11. 调用微信的扫一扫功能
  12. StretchDIBits
  13. Android10相机能够到获取经纬度,但是不能在相机中显示
  14. 使用R制作世界热力地图
  15. MPICH2 bcast广播函数使用
  16. 虫师selenium3+python自动化测试电子版_Selenium3 Java自动化测试实战 第三版.pdf
  17. 手机无法连接电脑的手机助手
  18. Subsonic 介绍
  19. PBOOTCMSV3.1.3火车头采集器7.6免登录 新闻文章发布
  20. 十三届蓝桥杯大赛 报名进行中,参赛得奖你上你也行

热门文章

  1. 鸿蒙系统的平板电脑,亓纪的想法 篇三百六十三:骁龙870+鸿蒙2.0!首款鸿蒙系统平板曝光,支持第二代M-Pencil...
  2. 进程外session(session保存在sqlserver)
  3. Connected to the target VM, address: '127.0.0.1:60885', transport: 'socket'
  4. 翻牌游戏如何打乱牌面java_如何游戏4Bet底池?
  5. R包实践:lubridate 处理时间数据
  6. Android NDK开发之 NEON使用介绍
  7. Android NDK开发之 Neon优化
  8. javascript 中的prompt 用法
  9. java标签不显示文字_此程序在运行后,窗体上不显示标签的文字,也不显示图标,我自己检查也没发现什么问题,请大神帮帮忙看看我哪个地方有问题?...
  10. 【蓝桥杯】 三行代码解决 “全排列的价值”(2022省赛pythonA组)