软件设计原则
SRP 单一职责原则
一个类应该只有一个发生变化的原因
OCP 开放-封闭原则
软件实体 应该是可以扩展, 但是不能修改
对扩展开放,
对修改关闭
LSP 里式替换原则
子类型必须能够代替掉他们的基类型
其中子类与基类的关系不一定是 单纯的 is-a 关系.
is-a 应该就行为方式而言, 就是看具体场景来分析
所以设计时应该采用 契约设计的办法, 每个函数都要声明前置和后置条件.
DIP 依赖倒置原则
a. 高层模块不应该依赖于底层模块, 两者都应该依赖于抽象
b. 抽象不应该依赖于细节, 细节应该依赖于抽象
ISP 接口隔离原则
不应该强迫客户程序依赖未使用的方法 (比如继承了没用的方法)