Decorator pattern
概念
在面向对象的编程中,装饰器模式是一种设计模式,它允许动态地将行为添加到单个对象,而不会影响来自同一类的其他对象的行为。
举例
当我们在需要扩展一个类的方法的时候,我们需要不断地继承原始方法或上一级方法的类,加上新的方法结构,这样就实现了对于原始方法的增强。当继承关系复杂的情景下,当我们要修改其中一个类方法,会导致其他增强方法的重写,这样使代码的耦合性太强,维护成本很高。对于这种情况,我们可以试试使用装饰者模式去解决这个问题。
就以我们最经常看到的IO操作中,构造一个InputStreamReader,File读取path封装成FileInputStream,接着被装饰成InputStreamReader
1 | InputStreamReader reader = new InputStreamReader(new FileInputStream(new File(path))); |