-
单一职责原则(SRP, Single Responsibility Principle)
- 每个类应该只有一个引起变化的原因,职责应该保持单一。
- 目标:高内聚,低耦合。
-
开闭原则(OCP, Open/Closed Principle)
- 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。
- 目标:通过扩展实现变化,而非直接修改代码。
-
里氏替换原则(LSP, Liskov Substitution Principle)
- 子类必须能够替代其父类而不改变程序的正确性。
- 目标:保证继承的正确性。
-
依赖倒置原则(DIP, Dependency Inversion Principle)
- 高层模块不依赖于低层模块,二者都应该依赖于抽象(接口/抽象类)。
- 目标:面向接口编程,解耦高层与底层。
-
接口隔离原则(ISP, Interface Segregation Principle)
- 一个类不应该强制依赖不需要的接口,接口应该小而专一。
- 目标:避免对一个类造成无关的强耦合。
以上5种原则常被称为SOLID
原则
-
迪米特法则(LoD, Law of Demeter,又称最少知道原则)
- 一个对象应该尽量少地了解其他对象,应通过中介转交信息而非直接依赖。
- 目标:降低对象之间的耦合性。