"单一职责"模式
重构前
存在的问题
- 多子类衍生
重构后
分析与总结
- 通过采用组合而非继承的手法,Decorator模式实现了运行时动态扩展对象功能的能力,而且可以根据需要扩展多个功能。避免了使用继承带来的”灵活性差“和"多子类衍生问题"。
- Decorator类在接口上表现为is-a component的继承关系,但在实现上又表现为has-a Component的组合关系。
- Decorator模式的目的并非解决“多子类衍生的多继承”问题,Decorator模式应用的要点在在于解决“主体类在多个方向上的扩展功能” ----是为“装饰”的含义。