大话设计模式之装饰模式(二)总结
概述
动态为对象添加额外的功能,相对以前利用子类继承来增加父类的功能来说。装饰模式更为简洁、灵活,更符合面向
对象的原则。
装饰模式结构图
特点
1、通过组合而非继承的方式,实现了动态扩展对象的功能的能力
2、有效避免了使用继承的方式扩展对象功能而带来的灵活性差,子类无限制扩张的问题
3、充分利用了继承和组合的长处和短处,在灵活性和扩展性之间找到完美的平衡点
4、装饰者和被装饰者之间虽然都是同一类型,但是它们彼此是完全独立并可以各自独立任意改变的
5、遵守大部分grasp原则和常用设计原则,高内聚、低偶合
6、在装饰过程过长的情况下,影响执行效率。