- 单一职责原则(SRP):一个类应该只有一个引起它变化的原因,即一个类应该只负责一项职责。例如,一个 Person 类,它应该只负责和 Person 相关的工作,而不应该去处理其他无关的工作。
- 开放封闭原则(OCP):软件实体应该对扩展开放,对修改封闭。例如,定义一个图形类,然后让不同类型的图形继承这个类,而不需要修改图形类本身。
- 里氏替换原则(LSP):子类对象应该能够替换掉所有父类对象。
- 接口隔离原则(ISP):客户端不应该依赖那些它不需要的接口,即接口应该是小而专的。
- 依赖倒置原则(DIP):高层模块不应该依赖底层模块,两者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。例如,一个公司类包含部门类,应该考虑使用组合关系,而不是继承关系。
- 迪米特法则(Law of Demeter):一个对象应当对其他对象有最少的了解,只和其直接的朋友交互。