2016-08-23 10 views
0

出力ストリームで2つの異なるフィルタを使用しようとしています。フィルタは以下のように仮定します。FilterOutputStreamを別のFilterOutputStreamでラップすることはできますか?

私は現在

return new FilterStream1(out); 

以下のようFilterStream1を使用してラップされたOutputStream outが、私は第二のフィルタの出力ストリームを追加して次の操作を実行するために、これを変更することはできますか?持って

public class FilterStream1 extends FilterOutputStream { 
} 

public class FilterStream2 extends FilterOutputStream { 
} 

OutputStream intermediateStream = new FilterStream2(out); 
return new FilterStream1(intermediateStream); 

この場合、注意すべきことはありますか?

答えて

1

はい、フィルタストリームを他のフィルタストリームに入れることは完全に合法です。地平線に問題はない。

実際、ストリームapiで実装されているデコレータパターンの使用例です。 (参考としてhttps://en.wikipedia.org/wiki/Decorator_patternを参照してください)

関連する問題