背景故事:
XML有这些Source和Result接口。 这些是Java中不同XML技术之间的适配器。 这些类的实例代表DOM,SAX,JAXB,XML流,XML事件 (甚至更多?)。Java:可能的泛化:流,读者,字符缓冲区,stringbuilder,...?
问题:
那么,对于普通的老字符串,有什么可比的吗?一些概括 之间?
[Input|Output]Stream
Reader|Writer
StringBuffer
StringBuilder
CharBuffer
(从NIO)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
接口,现在读/写possi每一个方法竹叶提取:
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,我目前参与的)
什么是关于这个?
你能解释一下这样的界面是什么样子的,以及为什么要使用它? – 2009-10-14 17:42:41
增加了澄清示例代码 – 2009-10-14 18:14:42