Java 编程模式-示例研究
我在考试中遇到了这个问题: 这是一种什么样的编程/设计模式:Java 编程模式-示例研究,java,design-patterns,Java,Design Patterns,我在考试中遇到了这个问题: 这是一种什么样的编程/设计模式: FileReader fr = new FileReader("file.txt"); BufferedReader bf = new BufferedReader(fr); 很抱歉给您添麻烦,但编程模式的定义对我来说并不清楚,我不知道如何正确回答这个问题。这就是一个例子 正如维基百科链接文章所述: 装饰器模式是一种设计模式,允许将行为动态添加到现有对象 在您的示例中,您将向文件读取器添加缓冲,这比常规的未缓冲的文件读取器提供更高效
FileReader fr = new FileReader("file.txt");
BufferedReader bf = new BufferedReader(fr);
很抱歉给您添麻烦,但编程模式的定义对我来说并不清楚,我不知道如何正确回答这个问题。这就是一个例子
正如维基百科链接文章所述:
装饰器模式是一种设计模式,允许将行为动态添加到现有对象
在您的示例中,您将向
文件读取器
添加缓冲,这比常规的未缓冲的文件读取器
提供更高效的读取。这是装饰器
模式。从设计模式手册:
意图:动态地将附加职责附加到对象。
装饰器提供了一种灵活的替代子类化的方法来扩展
功能性
适用性:使用Decorator
- 动态、透明地向单个对象添加职责,即不影响其他对象
- 对于可以撤销的责任
- 当通过子类进行扩展不可行时。有时,大量独立的扩展是可能的,并且会产生 爆炸式的子类支持每种组合。还是一个班级 定义可能隐藏或不可用于子类化
BufferedReader
,它会将缓冲功能附加到FileReader
如果您想了解更多关于模式的知识,我建议您阅读这本书(或更轻的“头先模式”)此外,关于JDK中的模式使用,还有很多精彩的东西——非常酷的东西 我相信他们在寻找装饰图案。