1. 单一职责原则 (Single Responsibility Principle, SRP)

一个类或模块应该只负责一项功能或职责。这意味着如果类发生变化,它只因单一功能的改变而修改,减少耦合,提高代码的内聚性。

2. 开放封闭原则 (Open/Closed Principle, OCP)

程序设计的基本原则是什么

类或模块应对扩展开放,对修改关闭。即在不修改原有代码的基础上,能通过增加新代码来实现新的功能,提高系统的可维护性和可扩展性。

3. 里氏替换原则 (Liskov Substitution Principle, LSP)

子类应当能够替换其父类并且在程序中使用时不会引起错误或异常。这保证了接口的一致性和行为的正确性。

4. 依赖倒置原则 (Dependency Inversion Principle, DIP)

高层模块不应该依赖于低层模块的实现细节,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。这促进了模块之间的解耦。

5. 接口隔离原则 (Interface Segregation Principle, ISP)

客户端不应该被强迫依赖它不需要的接口方法。应将大的接口拆分成更小、更具体的接口,减少不必要的依赖。

6. 迪米特法则 (Law of Demeter, LoD)

一个对象应当尽量减少与其他对象的交互,仅与直接的朋友通信。这有助于降低系统的复杂度,减少耦合。

7. 合成/聚合复用原则 (Composite/Aggregate Reuse Principle, CARP)

优先使用组合或聚合而不是继承来复用代码。这样可以更灵活地组合对象,减少继承层次的复杂性。

还有一些其他原则虽然不是通常所说的六大或七大原则,但在软件设计中同样重要:

简单性原则 (Simplicity Principle)

追求代码的简单易懂,避免过度设计,使得代码易于理解和维护。

同构原则 (Isomorphism Principle)

力求代码规范统一,相同的事物以相同的方式处理,提高代码的一致性和可读性。

KISS原则 (Keep It Simple, Stupid)

设计应保持简单,避免不必要的复杂性,易于理解和修改。

DRY原则 (Don't Repeat Yourself)

避免重复代码,每个逻辑只在一个地方实现,减少错误和维护成本。

这些原则共同构成了软件设计的基石,帮助开发者编写出高质量、易于维护的代码。