1. 分离变与不变的部分。
2. 针对接口编程,不针对实现。
3. 多用组合,少用继承。
4. 为了交互对象的松耦合而努力。
5. 类应该对扩展开放,对修改关闭。
6. 依赖倒置原则:要依赖抽象,不依赖具体。
7. “最少知识原则”:只和你的密友谈话。
8. “好莱坞原则”:别调用我们,我们会调用你。(例如:观察者模式)
9. 一类应只有一个引起变化的原因。
10.复合模式。(例如:MVC)
C->M: Strategy
M->V: Observer
C->V: Strategy
MVC任何一部分都可以嵌入其他模式。