Head First Design Pattern 读书笔记(3) Decorator Pattern 装饰者模式
##Decorator Pattern 类图
##定义 装饰者模式:通过让组件类与装饰者类实现相同的接口,装饰类可以在不修改原有组件类的情况下,动态拓展组件类的新功能,并且可以无限拓展下去。
##几个OO的原测
- 类应该对修改关闭,对拓展开放。-->“开闭原则”,即尽量不要修改已经在用的类,而通过继承的方式去拓展类的新功能。
- 设计类时应当尽量考虑不修改原有的代码。-->同“开闭原则”
- 组合与代理的方式经常用来在运行时动态地添加新功能。
##关于装饰者模式
- 装饰者模式每次新增功能都会重新封装一个装饰者类,这样可能带来“类爆炸”问题,代码中会有非常多结构相似的类,对一开始接触的人来说不好理解与维护。
- 装饰者类是它所装饰的组件类的一个镜像,它有原来组件的所有功能,还有新功能。
- 如果装饰者类跟组件类有同样函数签名的方法,在该方法中,装饰者在调用组件方法之前/后加入新的处理逻辑来给组件增加新功能。
- java中的输入输出流相关类就是通过Decorator Pattern实现的。