Head First Design Pattern 读书笔记(3)装饰者模式

Head First Design Pattern 读书笔记(3) Decorator Pattern 装饰者模式

Decorator Pattern 类图

Head First Design Pattern 读书笔记(3)装饰者模式_第1张图片

定义

装饰者模式:通过让组件类与装饰者类实现相同的接口,装饰类可以在不修改原有组件类的情况下,动态拓展组件类的新功能,并且可以无限拓展下去。

几个OO的原测

  1. 类应该对修改关闭,对拓展开放。–>“开闭原则”,即尽量不要修改已经在用的类,而通过继承的方式去拓展类的新功能。
  2. 设计类时应当尽量考虑不修改原有的代码。–>同“开闭原则”
  3. 组合与代理的方式经常用来在运行时动态地添加新功能。

关于装饰者模式

  1. 装饰者模式每次新增功能都会重新封装一个装饰者类,这样可能带来“类爆炸”问题,代码中会有非常多结构相似的类,对一开始接触的人来说不好理解与维护。
  2. 装饰者类是它所装饰的组件类的一个镜像,它有原来组件的所有功能,还有新功能。
  3. 如果装饰者类跟组件类有同样函数签名的方法,在该方法中,装饰者在调用组件方法之前/后加入新的处理逻辑来给组件增加新功能。
  4. java中的输入输出流相关类就是通过Decorator Pattern实现的。

你可能感兴趣的:(Head First Design Pattern 读书笔记(3)装饰者模式)