软件设计原则——SOLID原则

本文详细介绍了SOLID软件设计原则,包括单一责任原则、开放/封闭原则、里氏代换原则、接口分离原则和依赖反转原则。讨论了这些原则在实际开发中的应用,以及可能导致的问题和解决方案,旨在帮助开发者理解并更好地遵循这些原则来提高代码质量。
摘要由CSDN通过智能技术生成

SOLID原则

  • 单一责任原则(SRP)
  • 开放/封闭原则(OCP)
  • 里氏代换原则(LSP)
  • 接口分离原则(ISP)
  • 依赖反转原则(DIP)

对象建模并不容易,而且也不是精确科学。原则的存在大多数情况下告诉你做事的方式.一一给予指导,可能为你指明正确的方向。建模的整个要点是找到正确的原则组合。它们之中的一些甚至可能是冲突的。某些SOLID原则(特别是SRP和OCP)可能真的很难在大型代码库里全面实施。它们可能会引导你持续重构,直到你发现超过某个临界值之后工作继续量增加而好处却开始减少为止。盲目实施原则(特别是和OCP)可能会使你不能集中于主要目标,即产生可工作可维护的代码。

单一责任原则

一个类有且只有一个改变理由。

这里的重点本质上不是简化,而是通过暴露数量非常有限的责任使这个类与系统的交集更小,这样一来,当需求
改变时,需要编辑这个类的可能性就会更小了。

SRP经常被盲目地用于衡量代码的质量。在极端情况下,你会面临产生很多贫血类(只有属性
和少量甚至没有行为)的严重风险。每个类都倾向于承担最小量的责任,但你仍需要一些地方放置
系统所需的所有编排逻辑。因此出来的模型可能没有那么理想。
这就是为什么我们把SRP称为向量,在写代码时,记住类应该尽可能简单,专注于一个主要的
核心任务。但那不应该变成宗教教义或者衡量性能和质量的方式。

开放/封闭原则

开放/封闭原则使开发者可以创建能从改变幸存下来的软件实体(不管是类、模块还是函数)。这个原则认为:

模块应该对扩展开放,但对修改封闭。
对扩展开放基本上意味着现有的类应该是可扩展的,可以用作构建其他相关功能的基础。但在实现其他相关功能时,你不应该修改现有代码,因而对修改封闭。

OCP鼓励使用组合、接口和泛型等编程机制生成在不修改源代码的情况下可以扩展的类。
比如说,如果你创建一个类,使用泛型日志记录接口记录这个类的活动,这个类就能使用任何实现这个接口的日志记录器了。如果你使用组合,你可以在不触及现有组件的情况下在它们之上构建新的功能。

里民代换原则

子类应该可以替换它们的基类。
每当使用继承时,需要注意里民代换原则。继承是一个棘手的东西,组合肯定是使用类的一种更

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr___Ray

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值