例如,
PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
System.out)));
Run Code Online (Sandbox Code Playgroud)
这是方法链接模式吗?
创建模式:
Java核心库中的GoF设计模式示例
在Java中,每个输入/输出类都被设计为可以很好地完成一项工作,并且多个类一起用于完成复杂的工作。
Java I / O类的工作方式遵循称为Decorator的一般模式。
通过提供一些“精美的包装”,许多I / O类用于装饰另一个I / O类的对象。在第4章中,我们研究了策略的装饰器。这里,我们有另一种装饰器,但思路完全相同。
Writer的装饰器本身将是writer,并将提供其装饰的对象无法提供的某些其他服务。在这里,我们想使用PrintWriter,它知道如何编写Java程序已知的大部分内容。但是,打印作家实际上并不打印。
它只知道如何格式化您给它的东西(例如int)并将它们传递给它装饰的作家。我们必须将PrintWriter分层到FileWriter上,以将输出输出到文件中。这也很容易做到,尽管它也可能引发IOException。
PrintWriter output = new PrintWriter(new FileWriter("data.txt"));
Run Code Online (Sandbox Code Playgroud)
http://www.csis.pace.edu/~bergin/KarelJava2ed/ch10/index.html