日期:2014-05-20  浏览次数:20807 次

java流基础提问
在JAVA流的构造函数中,常常看到传入一个流作为参数构造另外一个流。请问这种方式有什么好处,通过这种方式构造的流有什么特点?呵呵,基础问题,望不吝赐教!
------解决方案--------------------
参数类型就是流类型,不然怎么办。。。。
------解决方案--------------------
当参数流类型和构造流类型不同的时候一般是为了利用已有的参数流去实现它没有的行为,如构造打印流时传入一个输出流,输出流只能输出,打印流可以将输入的内容通过输出流进行输出。
------解决方案--------------------
一句话:层层封装,既可以用已有的,也可以定义自己特有的。
------解决方案--------------------
好处就是,实现设计者想要的功能
特点:一般是通过参数将流对象传递进去,返回想要实现的流对象
------解决方案--------------------
本质是装饰者模式(Decorator Pattern)
通过组合的方式借助外来注入的能力,当然设计类时就须集成此种能力,运行时就可以灵活采用。



再结合一个程序代码的例子会更清楚:
http://en.wikipedia.org/wiki/Decorator_pattern
------解决方案--------------------
装饰者模式