简单设计四原则
- 通过所有测试(Passes its tests)
- 尽可能消除重复 (Minimizes duplication)
- 尽可能清晰表达 (Maximizes clarity)
- 更少代码元素 (Has fewer elements)
以上四个原则的重要程度依次降低。
正交设计原则:
- 消除重复
- 分离关注点
- 例如,身高排序,年龄排序,冒泡排序算法
- 排序对象:身高,年龄
- 排序对象比较规则:<=,>=
- 分离排序对象和排序规则
- 缩小依赖范围
- 向稳定的方向依赖
SOLID原则
单一职责原则 SRP (Single Responsibility Principle)
任何一个软件模块都应该只有一个职责;或者说任何一个软件模块都应该只有一个发生变化的原因;任何一个软件模块都应该只对某一类行为者负责
开放关闭原则 OCP (Open-Close Principle)
软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改
里氏替换原则 LSP (Liskov Substitution Principle)
子类型(subtype)必须能够替换掉它们的基类型(basetype),且不改变原有逻辑
接口隔离原则 ISP (Interface Segregation Principle)
接口应该是内聚的,不应该强迫客户依赖于它们不用的方法
依赖倒置原则 DIP(Dependency Inversion Principle)
a.高层模块不应该依赖于底层模块,二者都应该依赖于抽象;
b.抽象不应该依赖于细节。细节应该依赖于抽象。