背景故事:
XML 有这些 Source 和 Result 接口。这些是 Java 中不同 XML 技术之间的适配器。这些类的实例代表 DOM、SAX、JAXB、XML 流、XML 事件(甚至更多?)。
问题:
那么,普通的旧字符串有可比性吗?以下之间的一些概括?
[Input|Output]Stream
Reader|Writer
StringBuffer
StringBuilder
CharBuffer
(来自蔚来)File
(或者Path
对于我们中间的 JDK7 粉丝)- (最后)
CharSequence
也许有一些提供此类功能的通用 API(Apache commons 的东西......?)?
澄清示例:
经典方法的用法:
接口需要能够从(到)所有可能的来源(结果)读取(写入)字符:
interface SomeInterface {
readFrom(CharacterSequence source);
readFrom(InputStream source);
readFrom(Reader source);
readFrom(File source);
// ...
writeTo(CharacterSequence result);
writeTo(OutputStream result);
writeTo(Writer result);
writeTo(File result);
// ...
}
使用预期方法:
通过一些想象CharacterSource
和CharacterResult
接口,现在可以使用一种方法进行读/写:
interface SomeInterface {
readFrom(CharacterSource source);
writeTo(CharacterResult result);
}
预期的方法实施,可能的层次结构:
interface CharacterSource
+ class CharBufferSource
+ class InputStreamSource
+ class ReaderSource
+ class FileSource
+ ...
interface CharacterResult
+ class CharBufferResult
+ class OutputStreamResult
+ class WriterResult
+ class FileResult
+ ...
如果不存在这样的功能,我应该编写自己的迷你 API 吗? (对于更大的 API,我目前正在参与)
这是怎么回事?