找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。 针对接口编程,而不是针对实现编程。 多用组合,少用继承。 为了交互对象之间的松耦合设计而努力。 类应该对扩展开放,对修改封闭。 要依赖抽象,不要依赖具体类(依赖倒置原则) 最少知识原则:只和你的密友打电话。 好莱坞规则:别找我,我会找你。 单一职责:一个类应该只有一个因其变化的原因。 --摘自《Head First 设计模式》