`
zhoucl
  • 浏览: 49911 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java I/O之Adapter模式

    博客分类:
  • Java
阅读更多

这几天一直在鼓捣Maven和REST,I/O之Adapter模式就一直没有总结点什么发过来,这里就来补充一下简单的描述吧,废话少说直接进入主题。

1、Adapter模式

Adapter顾名思义就是适配器模式,举个形象点的例子:前几天买了个电器产品,是港行的,给的充电器的插头可能是符合香港那边标准,而无法在房间的任何一个插座上充电,实在没有办法就去商场买了个转接器,终于可以充电了,我想这里的转接器也就是Adapter模式中的适配器吧!~~呵呵

Adapter模式在设计模式中和前面讲的Decorator模式一样都是属于结构模式的范畴,较为专业的定义为:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)这两个身份。

那为何需要使用适配器模式呢?

我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果没有源代码,或者我们不愿意为了一个应用而修改各自的借口,那怎么办?使用Adapter,在这两种借口之间创建一个混血儿。

在这里就用一个UML图来进行简单形象的说明下Adapter模式是怎么回事~~


这里分别创建了两个Adapter,仅仅是适配的方向不同而已。

2、I/O中使用的Adpater模式分析

在Java I/O的类库中,我们在使用的过程中,经常可以看到同以上的UML图类似的操作,下面举一个简单的示例,UML图如下:



 在Reader和Stream之间,是不一样的IO读写标准,我们都知道InputStream/OutputStream是字节流,而Reader/Writer是字符流,两者的读写标准是不一样的,因此在其之间是存在一定的代沟的,因此在Java I/O类库中,有类似的InputStreamReader,这个就类似于适配器模式中的适配器,通过它,我们可以讲InputStream转化为Reader类型的字符流来操作I/O了,这将提供了更加方便的处理I/O的函数。

最后,这里的分析主要从UML图的角度来做对比的,较为简洁,详细的可以进一步的参考Javadoc文档和其他的参考资料。

 

  • 大小: 30 KB
  • 大小: 36.3 KB
分享到:
评论

相关推荐

    Java-从Decorator,Adapter模式看Java/IO

    总的来说,Java/IO库巧妙地运用了Decorator和Adapter模式,实现了流处理器的动态扩展和接口的兼容性,使得Java程序在处理输入输出时拥有极高的灵活性。这种设计思想不仅提升了代码的可维护性,也使得开发者能够更...

    java与模式,设计模式的应用

    3. 装饰器模式:Java I/O流中的装饰器模式,允许在运行时动态地给对象添加新的行为。例如,BufferedReader和PrintWriter就是对InputStream和OutputStream的装饰。 4. 适配器模式:在Java Swing中,JDBC驱动程序接口...

    10道Java面试必备的设计模式面试题!.zip

    在Java I/O系统中广泛应用,如`BufferedReader`和`PrintWriter`。 5. **策略模式(Strategy)**:定义一系列算法,将每一个算法封装起来,使它们可以互相替换,让算法的变化独立于使用算法的客户。Java的`...

    Java面试题大汇总(2021年Java面试题大全带答案)

    常见的Java设计模式包括Singleton模式、Factory模式、Adapter模式等。 * Java性能优化:Java中的性能优化可以提高程序的执行效率和响应速度。常见的Java性能优化方法包括使用缓存、减少数据库查询、使用并发编程等。...

    JAVA设计模式

    Java I/O流体系中的装饰器模式非常典型,如BufferedReader、DataInputStream等。 9. 外观模式(Facade):外观模式为子系统提供了一个统一的接口,使得客户端不必关心子系统内部的复杂性。在Java Swing和JavaFX库中...

    设计模式以及完整Java列子演示

    在Java中,I/O流的实现就是一个很好的装饰器模式的例子。 6. 适配器模式(Adapter Pattern):将两个不兼容的接口转换为兼容的接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Java中,我们可以...

    JAVA设计模式.影印版

    在Java中,InputStream和OutputStream等I/O流类的实现就是装饰器模式的经典示例。 6. **代理模式(Proxy)** 代理模式为其他对象提供一种代理以控制对这个对象的访问。它可以用于远程代理、虚拟代理、保护代理等,...

    Headfirst设计模式中文高清PDF+附书源码

    在Java中,I/O流类库广泛使用了装饰器模式。 5. **代理模式**(Proxy):为其他对象提供一种代理以控制对这个对象的访问。Java的动态代理机制实现了接口代理,可以用来创建业务层的代理服务。 6. **适配器模式**...

    Java的事件模式

    而在服务器端,Java的NIO(非阻塞I/O)框架也利用了事件模式。NIO通过选择器(Selector)监控多个通道(Channel),当通道上有可读写事件发生时,选择器会唤醒,然后应用程序可以处理这些事件。这种方式提高了服务器...

    源码:阎宏设计模式光盘

    com.javapatterns.javaio 专题:设计模式在Java I/O中的应用 com.javapatterns.keygen 专题:序列键生成器与单例及多例模式 com.javapatterns.liskov 里氏代换原则 com.javapatterns.lod 迪米特法则 ...

    设计模式面试题

    例如,在Java I/O中,`BufferedReader`和`BufferedWriter`等类就是使用装饰器模式实现的。 - **观察者模式(Observer)**:当对象状态改变时所有依赖于它的对象都会得到通知并自动更新。这种模式非常适合构建事件...

    二十三种设计模式【PDF版】

    o m m u n i c a t i n go b j e c t)的重复模式。这些模式解决特定的设计问题,使面向对象设计更灵活、优雅,最终复用性更 好。它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。 一个...

    设计模式.doc

    常见例子如JDBC驱动作为Java与数据库的适配器,以及Java I/O中的许多适配器类。 设计模式的选择取决于具体需求,比如需要创建对象的灵活性、系统扩展性、组件之间的兼容性等。理解并恰当运用设计模式能够提升代码的...

    设计模式全部文件打包

    在Java中,I/O流的实现就大量使用了装饰器模式。 6. **代理模式**:为其他对象提供一种代理以控制对这个对象的访问。在Java中,静态代理和动态代理(JDK Proxy或CGLIB)是常见的实现手段。 7. **观察者模式**:...

    Java编写的写字板

    3. **文件操作**:写字板需要读取和保存文件,这涉及到Java的I/O流(InputStream/OutputStream)和文件处理类,如`File`、`FileReader`、`FileWriter`。`File`类用于创建、读取和修改文件,`FileReader`和`...

    Java设计源码.zip

    在实际项目中,我们还需要了解如何使用Java的I/O流进行数据的读写,以及网络编程相关知识,如Socket通信。对于并发编程,Java提供了线程(Thread)、同步机制(Synchronized)、并发工具类(java.util.concurrent)...

    天堂2 服务端java源码

    - 事件驱动编程模型常用于处理这些实时事件,如使用Java的监听器(Listener)和适配器(Adapter)模式。 6. **安全性控制** - 防止作弊和非法入侵是服务端的重要任务。源码中可能包含了防止SQL注入、XSS攻击的...

    JAVA词汇表下载.docJAVA词汇表下载.doc

    4. 适配器类(Adapter Classes):适配器模式是设计模式之一,用于帮助程序员创建实现事件接口的类。适配器类通常具有空方法,子类可以通过覆盖这些方法来实现所需功能。 5. 匿名类(Anonymous Class):当需要创建...

    高级软件工程师面试题.pdf

    - 结构型模式:包括适配器模式(Adapter)、桥接模式(Bridge)、建造者模式(Builder)、组合模式(Composite)、装饰器模式(Decorator)、外观模式(Facade)、工厂方法模式(Factory Method)等。 - 行为型...

Global site tag (gtag.js) - Google Analytics