Java设计模式 - 适配器模式

我们在现实生活中使用适配器很多。例如,我们使用存储卡适配器连接存储卡和计算机,因为计算机仅支持一种类型的存储卡,并且我们的卡与计算机不兼容。

适配器是两个不兼容实体之间的转换器。适配器模式是一种结构模式。

在Java设计模式中,适配器模式作为两个不兼容接口之间的桥梁。

通过使用适配器模式,我们可以统一两个不兼容的接口。

例子

首先我们创建一个播放器界面来播放任何时间的媒体文件。

MyPlayer是适配器,它统一了播放媒体文件的接口。

interface Player {public void play(String type, String fileName);
}
interface AudioPlayer {  public void playAudio(String fileName);
}
interface VideoPlayer {  public void playVideo(String fileName);
}
class MyAudioPlayer implements AudioPlayer {@Overridepublic void playAudio(String fileName) {System.out.println("Playing. Name: "+ fileName);    }
}
class MyVideoPlayer implements VideoPlayer {@Overridepublic void playVideo(String fileName) {System.out.println("Playing. Name: "+ fileName);    }
}class MyPlayer implements Player {AudioPlayer audioPlayer = new MyAudioPlayer();VideoPlayer videoPlayer = new MyVideoPlayer();public MyPlayer(){      }@Overridepublic void play(String audioType, String fileName) {if(audioType.equalsIgnoreCase("avi")){videoPlayer.playVideo(fileName);}else if(audioType.equalsIgnoreCase("mp3")){audioPlayer.playAudio(fileName);}}
}
public class Main{public static void main(String[] args) {MyPlayer myPlayer = new MyPlayer();myPlayer.play("mp3", "h.mp3");myPlayer.play("avi", "me.avi");}
}

上面的代码生成以下结果。扩列下我尉(同英):CGMX9880 获取更多 程序员架构学习资料,
技术也是在不断更新,我相信你也想学到最新技术,
所以你们就不要说我骗人的,加的都获取资料,
学习更上一层楼了!Java,人工智能,架构师,初级程序员提升都有!

【Java教程】Java 适配器模式相关推荐

  1. java抓取网页标题内容_[Java教程]java 网页页面抓取标题和正文

    [Java教程]java 网页页面抓取标题和正文 0 2014-07-10 09:01:30 import java.io.BufferedReader;import java.io.IOExcept ...

  2. java demo在哪里下载_[Java教程]Java学习 (一)、下载,配置环境变量,第一个demo...

    [Java教程]Java学习 (一).下载,配置环境变量,第一个demo 0 2016-03-01 22:00:18 一.在 http://www.oracle.com 下载java JDK 安装到自 ...

  3. c ibatis mysql实例_[Java教程]java程序中的ibatis连接mySql的基本实例

    [Java教程]java程序中的ibatis连接mySql的基本实例 0 2015-03-16 00:01:32 属性文件:SqlMap.properties1 driver=com.mysql.jd ...

  4. java 配置信息_[Java教程]java 配置信息类 Properties 的简单使用

    [Java教程]java 配置信息类 Properties 的简单使用 0 2016-12-08 09:00:09 Properties :(配置信息类) 是一个表示持久性的集合 ,继承 Hashta ...

  5. java xfire webservice 异步_[Java教程]Java中使用webservice,简化开发(xfire的webservice)...

    [Java教程]Java中使用webservice,简化开发(xfire的webservice) 0 2016-01-07 15:00:11 首先,使用到的jar先导入项目中, xbean-sprin ...

  6. java教程java自学_15必须阅读Java 8教程

    java教程java自学 Java 8于上个月发布,并且充满了新功能和幕后优化. 互联网在覆盖所有这些新增功能(包括好与坏)方面都做得相当不错 . 我认为最好汇总一下我们认为是其中最好的一些教程,以帮 ...

  7. java字符流实际上也是字节,[Java教程]Java字节流与字符流的区别

    [Java教程]Java字节流与字符流的区别 0 2017-05-22 12:00:42 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身 ...

  8. java识别系统_[Java教程]Java识别操作系统

    [Java教程]Java识别操作系统 0 2016-11-03 19:00:10 1 /** 2 * Created by xfyou on 2016/11/3. 3 */ 4 public clas ...

  9. Java教程:Java是什么?Java的特点有哪些?

    本文来自CCTV5直播[www.cctv5zb.net]:原文地址 www.cctv5zb.net/Article/198130.html 转载注明来源 Java教程Java 是近 10 年来计算机软 ...

  10. java懒汉,[Java教程]java 懒汉式

    [Java教程]java 懒汉式 0 2016-07-28 01:00:06 2016-07-28 00:10:14 懒汉式: class text { public String k; privat ...

最新文章

  1. 对话预训练_百度发布首个大规模隐变量对话模型PLATO
  2. 全球及中国工业水性涂料行业销售前景与竞争态势研究报告2022年
  3. 大四学生对于晚睡的思考
  4. 设置NPM/Electron国内源
  5. C++ primer第一章练习笔记及书店程序
  6. R_ggplot2基础(三)
  7. java编程思想学习笔记——第2章 一切都是对象
  8. 创建3层的服务模板 (2)--- App-V package 和 Application Profile
  9. Vue.js身份证读卡器阅读器谷歌chrome火狐Firefox网页实现读取方法
  10. 性能测试adb常用命令
  11. wince同步软件区别
  12. 抖音的服务器究竟有多大?
  13. fms安装教程 linux_安装FMS3 for Linux
  14. php选择手机相片,头像直接从手机图库选择或者拍照上传
  15. pc端常用电脑屏幕 媒体查询尺寸
  16. 搭建微步蜜罐,启动通用OA系统仿真登陆蜜罐,使用awvs来去进行扫描通用OA系统仿真登陆蜜罐,nmap工具扫描搭建蜜罐的系统。
  17. linux电容触摸屏驱动参数,基于FT5x06嵌入式Linux电容触摸屏驱动
  18. K3工业老单单据的相关表
  19. java类和对象在内存的表现形式
  20. echarts中如何配置图例形状、图标宽高、图标和文字间距、图例位置、文字颜色、字体大小

热门文章

  1. Cplex教程(C++)
  2. 利用泰勒展开求高斯分布表
  3. android手机投影到电视软件下载,安卓手机怎么投屏到电视?这两种方法最简单!...
  4. ArcGIS for Android 100.3.0(1):开发环境配置
  5. Java 并发编程的艺术
  6. 舒尔特表-最终版 js
  7. URLDecoder.decode()转义处理
  8. siki暗黑战神项目总结,框架和主要的优化点
  9. 斐讯K2路由器刷固件实现校园网可使用
  10. 如何发挥思维导图真正的杀伤力?