Robert C. Martin认为导致一个软件的可维护性较低的真正原因在于:
- Rigidity 过于僵硬
- Fragility 过于脆弱
- Immobility 复用率低
- Viscosity 黏度过高
Peter Coad认为我们的设计目标:
- Extensibility 可扩展性
- Flexibility 灵活性
- Pluggability 可插拔性
传统复用-实现复用:对代码实现的复用,通常可维护性较差,不易扩展
- 代码片段,复制黏贴
- 算法复用,成熟的算法,例如排序算法等
- 数据结构,如队列、列表等
面向对象复用-设计复用:对抽象设计的复用,复用的焦点已然从实现“倒转”为抽象设计层次。
- 设计原则
- 设计模式
接下来,本专题会持续更新,主要涉及设计原则和设计模式。