装饰器模式
装饰器模式
java种的输入输出流的设计模式采用的就是装饰器模式
public static void main(String[] args) throws IOException {
FileWriter fileWriter = new FileWriter("sample.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write("天气真好呢,是的呢!!!!");
bufferedWriter.newLine();
bufferedWriter.close();
}
运行这段代码会创建一个sampl.txt的文件,这段代码把FileWriter对象组合到BufferedWriter对象。为什么要这样组合呢,BufferedWriter为缓冲流。缓冲流会提高写的效率。具体原理看下图
FileWriter fileWriter = new FileWriter("sample.txt");
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
BufferedWriter对象是对FileWriter对象的增强。字符一个一个向内存里写的效率比较低;先在缓冲区里面缓一段字符串,批量写入硬盘可以大大提高效率。
案例
在某公司,销售人员需要从数据库的文本文件中筛选出客户信息。这些客户信息是纯文本,但现在销售人员希望能够对这些文本进行格式化调整。于是我们尝试着用装饰器模式解决问题。