SRP:单一职责原则
任何一个软件模块都应该只对某一类行为者负责
OCP:开闭原则
主要目标时让系统易于扩展,同时限制其每次被修改所影响的范围。实现方式就是将系统分为一系列组件,组件之间按层级关系分割,高阶组件不会因低阶组件的修改而收到影响。例子,系统中的输出信息方式不会因显示设变的不同而不同,因为定义了统一的接口,所有的显示设别驱动都要实现该接口
LSP:里氏替换原则
对于子类的定义,假设S类的实例o1,T类的实例o2。在P程序中原来是使用T类的,但是可以替换成S类
ISP:接口隔离原则
在一般情况下,任何层次的软件设计如果依赖于不需要的东西,都会是有害的。所以需要一个接口层隔离不需要的东西。
DIP:依赖反转
一个灵活的系统应该多引用抽象类,因为抽象类是稳定的。类的调用不再依赖于具体实现类,而是抽象类