当前位置: 首页 > news >正文

第五十八节 Java设计模式 - 适配器模式

 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");}
}

上面的代码生成以下结果。

以上内容是否对您有帮助

http://www.lryc.cn/news/346123.html

相关文章:

  • 程序员的归宿。。
  • ROS服务器通信
  • 双向带头循环链表(图解)
  • 富文本编辑器 iOS
  • 【OceanBase诊断调优】—— checksum error ret=-4103 问题排查
  • 融合Transformer与CNN,实现各任务性能巅峰,可训练参数减少80%
  • K8s 多租户管理
  • Java面试题:Synchronized和Lock的对比
  • VPN方案和特点
  • 力扣HOT100 - 84. 柱状图中最大的矩形
  • 【吃透Java手写】3-SpringBoot-简易版-源码解析
  • maven mirrorOf的作用
  • Centos7 安装 MySQL5.7 使用 RPM 方式
  • 代码随想录算法训练营day21 | 513.找树左下角的值、112. 路径总和、106.从中序与后序遍历序列构造二叉树
  • 微信小程序知识点归纳(一)
  • wangEditor富文本编辑器与layui图片上传
  • 爬虫学习:XPath提取网页数据
  • 【雅思写作】Vince9120雅思小作文笔记——P1 Intro(前言)
  • 【面试干货】HTTPS 工作原理
  • Cocos Creator 中编码规范 (6)
  • Vue3:menu导航栏出现多个同一跳转路径的菜单处理
  • SAM轻量化应用Auto-SAM、Group-Mix SAM、RAP-SAM、STLM
  • 深度优化搜索DFS使用详解,看这篇就够了!!!
  • Apache SeaTunnel 正式发布2.3.5版本,功能增强及多个Bug修复
  • interview_bak
  • layui 数据表格 自动定位新增行位置
  • window10下安装ubuntu系统以及docker使用
  • Netty核心组件介绍
  • 代码审计平台sonarqube的安装及使用
  • C++ 使用nlohmann/json.hpp库读写json字符串