能够编写整洁代码的人 一定精通并擅长使用设计模式!
换句话说如果你连设计模式都不能熟谙 就休要声称自己有代码洁癖 能写出真正整洁代码
通过迭进设计达到整洁目的
简单设计的四条规则
- 运行所有测试
- 不可重复
- 表达了程序员的意图
- 尽可能减少类和方法的数量
以上规则按其重要程度排列
简单设计规则 1:运行所有测试
编写测试引致更好的设计
- 遵循 SRP 保持类短小且目的单一 高内聚
- 遵循 DIP 使用依赖注入 接口和抽象工具尽可能降低耦合度
简单设计规则 2~4:重构
递增式地重构代码 添加了几行代码后 就要暂停 琢磨一下变化了的设计 测试消除了对清理代码就会破坏代码的恐惧
重构过程中应用有关优秀软件设计的一切知识
- 提升内聚性
- 降低耦合度
- 切面关注面
- 模块化系统性关注面
- 缩小函数和类的尺寸
- 选用更好的名称
- …
对应的正是简单设计后三条规则
不可重复
重复是拥有良好设计系统的大敌
- 额外的工作
- 额外的风险
- 不必要的复杂度
int size() {}
boolean isEmpty() {}
// isEmpty可以借 size 消除重复
boolean isEmpty() {
return 0 == size();
}
模板方法模式 是一种移除高层级重复的通用技巧
手法:继承一个抽象类 其中有一个方法 包含了所有通用操作函数
思路不算复杂 就不展开例子了
表达力
软件项目的主要成本在于长期维护 为了在修改时尽量降低出现缺陷的可能性 很有必要理解系统是做什么的
下一个读代码的人最有可能是你自己 所以尽量恪守代码易读