java.io中最常用的模式是什么?

java.io中最常用的模式是什么?,java,design-patterns,io,Java,Design Patterns,Io,我最近在工作面试中被问到这个问题,但我无法回答。那么,java.io中最常用的模式是什么?它是如何使用的?常见java库中使用的其他模式有哪些?我认为是装饰器模式。创建各种风格的阅读器、写入器、输入和输出流。 例如,请参阅。在java i/o中经常使用 范例 BufferedReader br = new BufferedReader(new FileReader("filename.txt")); 我想他们想听的是那些可以在各种流媒体、读者和作家中找到的信息 其他模式(小范围选择): 在

我最近在工作面试中被问到这个问题,但我无法回答。那么,java.io中最常用的模式是什么?它是如何使用的?常见java库中使用的其他模式有哪些?

我认为是装饰器模式。创建各种风格的阅读器、写入器、输入和输出流。 例如,请参阅。

在java i/o中经常使用

范例

BufferedReader br = new BufferedReader(new FileReader("filename.txt")); 

我想他们想听的是那些可以在各种流媒体、读者和作家中找到的信息

其他模式(小范围选择):

  • 在swing库中
  • 在javax.xml.parsers包中
  • ,用于收藏
我非常确信,可以在Java SDK中找到本文档中列出的几乎所有模式的示例。

etc实现。任何,例如,或,都可以用缓冲特性来修饰,这实际上是不受源代码影响的


其他模式
  • 是一个

反模式 除了其他人所说的之外,Java库中还有几个反模式:

反模式:继承而不是组合 摘自《有效Java第二版》,第16项:偏爱组合而非继承:

Java平台库中有许多明显违反这一原则的行为。例如,堆栈不是向量,因此不应扩展。类似地,属性列表不是哈希表,因此不应扩展。在这两种情况下,组合都更可取

相关问题

反模式:常量接口 摘自《有效Java第二版》,第19项:仅使用接口定义类型:

Java平台库中有几个常量接口,例如。这些接口应视为异常,不应进行仿真

相关问题

反模式:伸缩构造函数和JavaBeans模式 <>从有效java第二版,项目2:考虑构造函数时面临许多构造函数参数():

传统上,程序员使用伸缩构造函数模式,在这种模式中,您只提供了一个构造函数所需的参数,另一个构造函数提供了一个可选参数,第三个构造函数提供了两个可选参数,依此类推[…]伸缩构造函数模式可以工作,但是,当有许多参数时,编写客户机代码很困难,而且更难编写

当您面临许多构造函数参数时,第二种选择是JavaBeans模式,在该模式中,您调用无参数构造函数来创建对象,然后调用setter方法来设置每个必需的参数和每个感兴趣的可选参数。[…]不幸的是,JavaBeans模式本身有严重的缺点[…]JavaBean在其构造过程中可能处于不一致的状态[并且它]排除了使类不可变的可能性

布洛赫建议改用一种新的方法

相关问题

java.io包中使用的模式

  • 示例:

    抽象类及其具体子类:
    BufferedInputStream、CheckedInputStream

  • 和模式:

    示例:

    抽象类及其具体子类:
    ByteArrayInputStream、FileInputStream、FilterInputStream

    InputStream input = new FileInputStream("some_file.txt");
    
    下面的类支持统一来自字节数组、文件、网络连接、持久存储、管道、字符串等的输入:

    class java.io.InputStream 
          class java.io.ByteArrayInputStream 
          class java.io.FileInputStream 
          class java.io.FilterInputStream 
          class java.io.ObjectInputStream
          class java.io.PipedInputStream 
          class java.io.SequenceInputStream 
          class java.io.StringBufferInputStream
    
  • :

    示例:

    java.io.InputStreamReader
    将字节流转换为字符流,
    java.io.OutputStreamWriter
    将字符流转换为字节流

    你可以在这里找到更多的细节

  • (来源:文章)

    java.io.InputStream、java.io.OutputStream、java.io.Reader和java.io.Writer的所有非抽象方法

  • 有关java中的所有其他模式,请参阅本文:


    有关Java标准库中使用的GoF模式的全面列表,请参阅。查看Java代码极客关于JDK中设计模式的文章-