java - 装饰器模式 java.io.reader

标签 java decorator java-io

对于学校报告,我必须解释 java.io.Reader 包如何实现 Decorator pattern .我已经看到了 java.io 包的多种解释(例如 here),但没有看到 java.io.Reader 包(如果有任何不同的话)。这是我现在所拥有的,我知道这个设计没有正确显示它,但我不确定 java.io.Reader 包实际上是如何实现它的。

decorator java.io.Reader

所以在这种情况下,Reader 将是 ComponentInputStreamReader Concrete ComponentBufferedReader DecoratorLineNumberReader Concrete Decorator。同样,我知道这是错误的,但我不知道如何正确显示它。

最佳答案

图表是正确的。如果您可以访问 Intellij(或其他功能强大的工具),您可以看到 Java 类型的 UML 类图。下面的代码片段就是这样一个图表。

enter image description here

如您所见,它与您的一致。不过,我会考虑的一件事是 BufferedReader 具体装饰器,因为它在 Reader 上提供了额外的行为。

关于java - 装饰器模式 java.io.reader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46994892/

相关文章:

java - 在 Weka 中以编程方式获取 EM 聚类器输出

java - 如何在 jtable 行中插入 jcombobox 以获得多个值

python - @measured 是标准装饰器吗?它在哪个图书馆?

java - Reader 不能*直接*从 StringBuilder 读取吗?

java - Java读取大文件时如何避免OutOfMemory异常

Java - 我的代码中有一个额外的字符?

java - java 中的 if/else 类型语句

java - 带有 final方法的 Java 类装饰器

python - 可以选择在类方法上使用装饰器

java - ByteArrayOutputStream.toByteArray() 返回随机字节?