软件构造:SOLID设计原则

SOLID设计原则

    软件构造的过程中有五大设计原则。按照这五条设计原则设计出来的程序,具有优秀的健壮性、可复用性、可拓展性和安全性。SOLID设计原则具体包括:SRP(The Single Responsibility Principle)单一责任原则、OCP(The Open-Closed Principle)开放-封闭原则、LSP(The Liskov Substitution Principle)里氏替换原则、ISP(The Interface Segregation Principle)接口隔离原则、DIP(The Dependency Inversion Principle)依赖转置原则。接下类,我来具体介绍一下每条原则:

1.单一责任原则(SRP)

    单一责任原则的定义是:一个类只允许有一个责任,即只有一个导致该类发生变更的原因。如果有多个原因则将它们拆分开来,加强类的内聚性。类职责的变化往往是导致类变化的原因:也就是说如果一个类具有多种职责,就会有多种导致这个类变化的原因,从而导致这个类的维护变得困难。通过遵循单一责任原则,我们不但可以提高代码的可读性,也实际性的降低了程序出错的风险。

2.开放-封闭原则(OCP)

    OCP原则包括两个方面:一是对拓展性的开放,即模块的行为应该是可拓展的,模块可表现出新的行为以满足需求的变化。二是对修改的封闭:模块自身的代码是不应被修改的,需要去拓展出新的类然后调用新的类。OCP原则典型的应用,就是我上一篇博客所讲的面向可复用性编程的几种模式,感兴趣的同学可以去看看。

3.里氏替换原则(LSP)

    里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。里氏替换原则具体体现为,子类方法的参数是父类参数的逆变,返回值是父类型的协变,作用域不能小于父类型,抛出的异常不能比父类型更宽泛,如果父类型没有抛出任何异常,子类型必须捕获所有的checked异常。

4.接口隔离原则(ISP)

    ISP原则的定义是:不能强迫客户端依赖于它们不需要的接口,只提供必须的接口。这种原则可以避免接口的污染,防止接口的参数过多,产生“胖接口”。在出现胖接口时,我们可以将胖接口分解成多个只需要较少参数的小接口,通过不同的接口向客户端提供不同的服务,客户端只需要调用自己需要用到的接口。这种设计原则减轻了客户端程序开发的负担,同时也提升代码的可读性。

5.依赖转置原则(DIP)

    依赖转置原则包括两个方面:一是高层模块不应该依赖于底层模块,二者都应该依赖于抽象。二是抽象不应该依赖于实现细节,实现细节应该依赖于抽象。

posted @   马子涵  阅读(133)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示