- - PR -
OutputStream/Writer/DataOutput
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2003-08-22 13:46
お尋ねします。
要件として、文字出力先を ・OutputStream ・Writer で指定できるようにするために、 out(OutputStream stream) { out(new OutputStreamWriter(stream)); } out(Writer writer) { writer.write("...."); } (↑あくまでもイメージ) のようにしています。これで、StreamでもWriterでも 出力できます。 追加要件として、 ・DataOutput でも指定できるようにするためには、どのようにすれば よいでしょうか? out(OutputStream stream) { out(new OutputStreamWriter(stream)); } out(Writer writer) { writer.write("...."); writer.write("----"); writer.write("XXXX"); } out(DataOutput output) { output.write("...."); output.write("----"); output.write("XXXX"); } (↑あくまでもイメージ) 現在は、このようにしていますが、やはり同じことを 何度も書きたくないのです。 どのように実装すれば、よいでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2003-08-22 15:41
共通化したいのであれば、共通のラッパーインターフェースを用意し、実際の処理をそっちにたらい回しにしてやれば良いのでは?
文字列として出力する場合においては、一応共通化が計れます。 DataOutputとして、primitive dataを出力するのはこの方法では無理! ex)
| ||||
|
投稿日時: 2003-08-24 15:42
ありがとうございました。
OutputStreamをWriterでwrapするように DataOutputもOutputStreamかWriterでwrapできれば よいな(new DataOutputWriter([DataOutput])みたいな) と思っていましたが、できなさそうなので、 教えていただいた方法で共通化しました。 ---- これって、Java(OO?)の設計ではセオリーっぽい (デザインパターン?)ですが、この類の参考書やサイト をご存知でしたら、教えていただけないでしょうか? ---- それと、今回の質問で、以前ちょっと興味を持った 「アスペクト指向」が頭をよぎりましたが、そういう 解決策はあるでしょうか? | ||||
|
投稿日時: 2003-08-24 17:19
Adapterのパターンかな。たぶん... | ||||
1
