装饰模式:它拥有一个设计非常巧妙的结构,他可以动态添加对象功能,通过委托机制复用组件功能
在运行时 将这些功能组件进行叠加,从而成为一个“超级对象”,使之拥有所有的这些组件的功能
这样有效的分离(性能组件、扩展功能组件)和功能组件,从而升级模块的可维护性和增加模块的复用性。
jdk中 outputstream 和 inputstream 类族的实现是装饰模式的经典应用。
实际开发过程中,为了给某个对象增加一个功能,而不需要改变他的整体结构,并且达到松耦合,采用装饰模式 很合适。