1、单一职责原则
2、接口隔离原则
3、依赖倒转原则
- 接口传递
- 构造方法传递
- setter方式传递
4、里氏替换原则
- 子类透明
5、开闭原则
- 扩展开放
- 修改关闭
6、迪米特法则
- 降低类与类之间的耦合(降低而不是消除)
- 最少知道原则(对自己依赖的类知道的越少越好)
- 成员变量、反方参数、方法返回值中的是"朋友",局部变量不是
7、合成复用原则
- 尽量使用合成/聚合的方式,而不是使用继承
- 依赖是在方法上传递一个类(使用)
- 聚合是在一个类中声明另一个类,使用set方法赋值
- 组合是在一个类中已经实例化出来一个类
设计原则的核心思想
- 找出应用中可能需要变化的地方,把他们独立出来,不要和那些不需要变化的代码混在一起
- 针对接口编程,而不是针对实现编程
- 为了交互对象之间的松耦合设计而努力