1. 单一职责原则
定义
单一职责原则(SRP:Single responsibility principle)又称单一功能原则。它规定一个类应该只有一个发生变化的原因。
阐述
单一职责适用于接口、类、方法。顾名思义,就是要求一个接口或类只有一个职责,它就负责一件事情。
好处
- 类的复杂性降低,有清晰明确的定义
- 提高了可读性和可维护性
- 使得变更引起的风险降低
注意
职责没有一个量化的标准,并且受非常多因素的制约,现实中实现起来会有困难。
2. 里氏替换原则
定义1
如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代替成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。
定义2
所有引用基类的地方必须能透明地使用其子类的对象。
阐述
通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。
里氏替换原则的4层含义
- 子类必须完全实现父类的方法
- 子类可以有自己的个性
- 覆盖或实现父类的方法时输入参数可以被放大
- 覆写或实现