设计原则(一):SOLID 概览

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

背景介绍


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

《架构整洁之道》系列:



设计原则


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


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


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


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


  • SRP:单一职责原则

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

  • OCP: 开闭原则

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

  • LSP: 里氏替换原则

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

  • ISP: 接口隔离原则

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

  • DIP : 依赖反转原则

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


结束语


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


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


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


最后


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

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

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

相关文章
|
4月前
|
设计模式 前端开发 关系型数据库
SOLID设计原则和我的一点个人感悟
SOLID设计原则和我的一点个人感悟
25 0
|
11月前
|
消息中间件 设计模式 存储
【Java设计模式 经典设计原则】二 SOLID-OCP开闭原则
【Java设计模式 经典设计原则】二 SOLID-OCP开闭原则
69 0
|
11月前
|
设计模式 搜索推荐 安全
【Java设计模式 经典设计原则】三 SOLID-LSP里式替换原则
【Java设计模式 经典设计原则】三 SOLID-LSP里式替换原则
98 0
|
11月前
|
设计模式 Java 关系型数据库
【Java设计模式 经典设计原则】五 SOLID-DIP依赖反转原则
【Java设计模式 经典设计原则】五 SOLID-DIP依赖反转原则
82 0
|
12月前
|
存储 搜索推荐 程序员
DDD概述
程序设计语言指导怎样把设计更好地落地 各种编程范式指导可以用什么样的元素去做设计 设计原则与模式指导如何组合分解出来的各个元素
122 0
|
设计模式 消息中间件 存储
软件设计 软件设计模式之SOLID原则
软件设计 软件设计模式之SOLID原则
70 0
|
JavaScript 前端开发 算法
Solid,一个前端超新星项目?
本文适合对新兴前端技术框架感兴趣的小伙伴阅读
Solid,一个前端超新星项目?
|
安全
一分钟搞懂 SOLID 原则
一分钟搞懂 SOLID 原则
152 0
一分钟搞懂 SOLID 原则
|
关系型数据库 微服务
SOLID之OCP
开闭原则 OCP Open-Closed Principle 设计良好的计算机软件应该易于扩展,同时抗拒修改 换句话说,一个良好的计算机系统应该在不需要修改的前提下就可以轻易被扩展 遵循开闭原则设计出的模块具有两个特征: 1. “对于扩展是开放的”,当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为 2. “对于更改是封装的”,对模块进行扩展时,不必改动原有的代码
114 0
SOLID之OCP
|
Java Python
用代码诠释SOLID六大原则
六大原则 单一职责原则 定义 定义: 确保单例类只有一个实例,并且这个单例类提供一个函数接口让其他类获取到这个唯一的实例。 1 解释:一个类只负责一个职责,不要存在多于一个导致类变更的原因。
184 0
用代码诠释SOLID六大原则