如何巧妙运用Java装饰器模式实现优雅扩展?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1767个文字,预计阅读时间需要8分钟。
目录:- 什么是装饰器模式- 优点- 缺点- 使用场景- 装饰器模式和代理模式的区别- 装饰器的简单实现- 装饰器模式实战- 小结- 什么是装饰器模式(Decorator Pattern)- 装饰器模式(Decorator Pattern)
目录
- 什么是装饰器模式
- 优点
- 缺点
- 使用场景
- 装饰器模式和代理模式的区别
- 装饰器的简单实现
- 装饰器模式实战
- 小结
什么是装饰器模式
装饰器模式(Decorator Pattern):在不改变对象自身的基础上,在程序运行期间给对象动态的添加职责;
感觉和继承如出一辙,不改变父类,子类可拓展功能;
优点
装饰类和被装饰类可以独立发展,不会相互耦合
相比于继承,更加的轻便、灵活
可以动态扩展一个实现类的功能,不必修改原本代码
缺点
会产生很多的装饰类,增加了系统的复杂性。
这种比继承更加灵活机动的特性,也同时意味着装饰模式比继承易于出错,排错也很困难,对于多次装饰的对象,调试时寻找错误可能需要逐级排查,较为繁琐。
使用场景
对已有的目标功能存在不足,需要增强时,扩展类的功能。
本文共计1767个文字,预计阅读时间需要8分钟。
目录:- 什么是装饰器模式- 优点- 缺点- 使用场景- 装饰器模式和代理模式的区别- 装饰器的简单实现- 装饰器模式实战- 小结- 什么是装饰器模式(Decorator Pattern)- 装饰器模式(Decorator Pattern)
目录
- 什么是装饰器模式
- 优点
- 缺点
- 使用场景
- 装饰器模式和代理模式的区别
- 装饰器的简单实现
- 装饰器模式实战
- 小结
什么是装饰器模式
装饰器模式(Decorator Pattern):在不改变对象自身的基础上,在程序运行期间给对象动态的添加职责;
感觉和继承如出一辙,不改变父类,子类可拓展功能;
优点
装饰类和被装饰类可以独立发展,不会相互耦合
相比于继承,更加的轻便、灵活
可以动态扩展一个实现类的功能,不必修改原本代码
缺点
会产生很多的装饰类,增加了系统的复杂性。
这种比继承更加灵活机动的特性,也同时意味着装饰模式比继承易于出错,排错也很困难,对于多次装饰的对象,调试时寻找错误可能需要逐级排查,较为繁琐。
使用场景
对已有的目标功能存在不足,需要增强时,扩展类的功能。

