背景故事:
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