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