首页 / 设计模式 / 基于JAVA的设计模式之适配器模式
基于JAVA的设计模式之适配器模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了基于JAVA的设计模式之适配器模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2581字,纯文字阅读大概需要4分钟。
内容图文
![基于JAVA的设计模式之适配器模式](/upload/InfoBanner/zyjiaocheng/794/6ac65429f2754b63b39da7cb8780cebe.jpg)
- 适配器模式概念
适配器模式把一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。比如我们突然就想看电影了,但是这个电影是AVI格式的,目前我们开发的Player播放器只能播放Mp4格式的,那么我们就得对这款落后的Player进行版本升级,通过Adapter适配器就可以实现既可以播放AVI格式的、也可以播放Mp4,这个适配器既可以播放原有的Mp4,也可以提供AVI接口。
Adapter:适配器
Adaptee:被适配的对象,就是Player
Target:客户端理想的接口,就是可以播Mp4,也可以播放AVI接口
- 类适配器类图
- 类适配器代码
public interface TargetPlayer { public void playMp4(); public void playAVI(); } public class AdpateePlayer { public void playMp4(){ System.out.println("can play mp4"); } } public class Adapter extends AdpateePlayer implements TargetPlayer { public void playAVI() { System.out.println("can play avi"); } } public class AdapterMain { public static void main(String[] args) { Adapter adapter=new Adapter(); adapter.playAVI(); adapter.playMp4(); } }
- 对象适配器类图
- 对象适配器代码
public interface TargetPlayer { public void playMp4(); public void playAVI(); } public interface AdapteePlayer { public void playMp4(); } public class AdapteePlayerImpl implements AdapteePlayer { public void playMp4() { System.out.println("can play mp4"); } } public class Adapter implements TargetPlayer{ private AdapteePlayer adapteePlayer; public void setAdapteePlayer(AdapteePlayer adapteePlayer) { this.adapteePlayer = adapteePlayer; } public void playMp4() { adapteePlayer.playMp4(); } public void playAVI() { System.out.println("can play avi"); } } public class AdapterMain { public static void main(String[] args) { Adapter adapter=new Adapter(); AdapteePlayer adapteePlayer=new AdapteePlayerImpl(); adapter.setAdapteePlayer(adapteePlayer); adapter.playAVI(); adapter.playMp4(); } }
- 二者比较
小编为了突出对象适配器的好,将待适配器对象实现既写了接口又写了实现,很明显对象适配器很灵活,可以动态的传入不同的待适配的对象,而类适配器是静态的类继承,后期不可以修改,很死板。
- 应用场景
适配器作用就是讲一个接口适配到另一个接口,在Java 的I/O类库中有很多这样的需求,如将字符串数据转变成字节数据保存到文件中,将字节数据转变成流数据等。
以InputStreamReader和OutputStreamWriter类为例。
InputStreamReader和OutputStreamWriter类分别继承了Reader和writer接口,但是要创建他们的对象必须在构造函数中传入一个InputStream和OutputStream的实例,InputStreamReader和OutputStreamWriter类的作用也就是将InputStream和OutputStream适配到Reader和Writer。
适配器是InputStreamReader,源角色是InputStream代表的实例对象,目标接口就是Reader类。
InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。
内容总结
以上是互联网集市为您收集整理的基于JAVA的设计模式之适配器模式全部内容,希望文章能够帮你解决基于JAVA的设计模式之适配器模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。