设计原则(一):SOLID 概览

简介: 设计原则(一):SOLID 概览

背景介绍


这是我的《架构整洁之道》系列的第五篇,从这一篇开始,我们将要一起学习设计原则~

《架构整洁之道》系列:



设计原则


通常来说,要想构建一个好的软件系统,应该从写整洁的代码开始做起。毕竟,如果建筑所使用的砖头质 量不佳,那么架构所能起到的作用也会很有限。反之亦然,如果建筑的架构设计不佳,那么其所用的砖头质 量再好也没有用。这就是 SOLID 设计原则所要解决的问题。


一般情况下,我们为软件构建中层结构的主要目标如下:


  • 使软件可容忍被改动。
  • 使软件更容易被理解。
  • 构建可在多个软件系统中复用的组件。


在这里之所以会使用“中层”这个词,是因为这些设计原则主要适用于那些进行模块级编程的程序员。SOLID 原则应该直接紧贴于具体的代码逻辑之上,这些原则是用来帮助我们定义软件架构中的组件和模块的。


  • SRP:单一职责原则

每个软件模块都有且只有一个需要被改变的理由。

  • OCP: 开闭原则

如果软件系统想要更容易被改变,那么其设计就必须允许新增代码来修改系统行为,而非只能靠修改原来的代码。

  • LSP: 里氏替换原则

这项原则的意思是如果想用可替换的组件来构建软件系统,那么这些组件就必须遵守同一个约定,以便让这些组件可以相互替换。

  • ISP: 接口隔离原则

软件设计师应该在设计中避免不必要的依赖

  • DIP : 依赖反转原则

高层策略性的代码不应该依赖实现底层细节的代码,恰恰相反,那些实现底层细节的代码应该依赖、高层策略性的代码。


结束语


网络异常,图片无法展示
|


其实仔细思考这些原则的内涵,在之前的整洁编码中也有体现,整洁的架构本身就是由坚实的框架与一砖一瓦构成,每一处都透露出这些原则的无穷奥妙。


在接下来的几篇文章中,我们将一起学习这些原则在软件架构上的意义~


最后


✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

少年向来不识天高地厚
放眼处皆自负才高八斗
虽是自命风流
倒也坦诚无忧
我爱这样的少年
谦和而狂妄
骄傲又坦然☀️

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

相关文章
|
13天前
|
关系型数据库 测试技术
|
30天前
|
开发者 Python
软件开发中的 DRY、KISS 和 SOLID 原则
**软件开发中的DRY、KISS和SOLID原则概览** - **DRY (Don't Repeat Yourself)**: 避免代码重复,确保每项知识在系统中有唯一表示,减少冗余,提高可维护性。例如,通过封装重复逻辑到函数或类。
|
3月前
|
设计模式 前端开发 关系型数据库
SOLID设计原则和我的一点个人感悟
SOLID设计原则和我的一点个人感悟
43 0
|
消息中间件 设计模式 存储
【Java设计模式 经典设计原则】二 SOLID-OCP开闭原则
【Java设计模式 经典设计原则】二 SOLID-OCP开闭原则
82 0
|
设计模式 Java 关系型数据库
【Java设计模式 经典设计原则】五 SOLID-DIP依赖反转原则
【Java设计模式 经典设计原则】五 SOLID-DIP依赖反转原则
100 0
|
设计模式 搜索推荐 安全
【Java设计模式 经典设计原则】三 SOLID-LSP里式替换原则
【Java设计模式 经典设计原则】三 SOLID-LSP里式替换原则
118 0
|
设计模式 XML JSON
【Java设计模式 经典设计原则】一 SOLID-SRP单一职责原则
【Java设计模式 经典设计原则】一 SOLID-SRP单一职责原则
78 0
|
设计模式 消息中间件 存储
软件设计 软件设计模式之SOLID原则
软件设计 软件设计模式之SOLID原则
87 0
|
设计模式 测试技术 领域建模
领域驱动设计概览
领域驱动设计概览
领域驱动设计概览
|
JavaScript 前端开发 算法
Solid,一个前端超新星项目?
本文适合对新兴前端技术框架感兴趣的小伙伴阅读
Solid,一个前端超新星项目?