单一职责原则
-
含义:单一职责的目的就是为了保证内聚性,只有一个引起变化的原因,说明类内成员之间的关系较高,内聚性不强的就不要写到一个类中。
-
优点:
- 类的复杂性降低,实现什么职责都有清晰明确的定义
- 可读性提高,复杂性降低
- 可维护性提高
- 变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护性都有非常大的帮助
里氏替换原则
-
含义:所有引用基类的地方必须能透明地使用其子类的对象
- 子类必须完全实现父类的方法
- 子类可以有自己的扩展
- 覆盖或实现父类的方法时,输入参数可以被放大
- 覆写或实现父类的方法时输出结果可以被缩小
-
优点:
- 增强程序的健壮性,版本升级时也可以保持非常好的兼容 性。
- 即使增加子类,原有的子类还可以继续运行
- 在实际项目中,每个子类对应不同的业务含义,使用父类作为参数,传递不同的子类完成不同的业务逻辑
依赖倒置原则
- 含义:针对接口编程,依赖于抽象而不依赖于具体。
-
优点:
- 减少类间的耦合性
- 提高系统的稳定性
- 降低并行开发的风险
- 提高代码的可读性和可维护性
接口隔离原则
- 含义:使用多个隔离的接口,比使用单个接口要好。接口尽量细化,同时接口中的方法尽量少。
-
优点:
- 降低耦合度
迪米特法则
-
含义:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。
-
优点:
- 类间解耦,弱耦合,类发生修改后,影响的其他类少
-
缺点:
- 产生了大量的中转或跳转类,导致系统的复杂性提高,同时也为维护带来了难度