SOLID设计原则
创始人
2024-03-29 20:09:46
0

 

1. SRP单一职责原则

任何一个软件模块都应该有且仅有一个被修改的原因。

反例是一个类的三个方法给三个部门提供服务,而这三个方法有一些公共子方法,很有可能因为A部门的代码变更改动,导致B、C部门调用的方法出现意料之外的结果。

2. OCP开闭原则

设计良好的计算机软件应该易于扩展,同时抗拒修改。其主要目标是让系统易于扩展,同时限制其每次被修改所影响的范围。

3. LSP里氏替换原则

所有引用基类的地方必须能透明地使用其子类的对象。简单地说:所有父类能出现的地方,子类就可以出现,并且替换了也不会出现任何错误。这就要求子类的所有相同方法,都必须遵循父类的约定,否则当父类替换为子类时就会出错。LSP 重点强调:对使用者来说,能够使用父类的地方,一定可以使用其子类,并且预期结果是一致的。

4. ISP接口隔离原则

不同的操作隔离成接口,任何层次的软件设计如果依赖了他并不需要的东西,都会带来依赖之外的麻烦,ISP 提倡不要将一个大而全的接口扔给使用者,而是将每个使用者关注的接口进行隔离。

5. DIP依赖反转原则

如果想要设计一个灵活的系统,在源代码层次的依赖关系中就应该多引用抽象类型,而非具体实现,从依赖具体实现转向到依赖抽象接口。从下图中我们可以看到实际调用方向和接口的实现与注入实例的方向是相反的。

 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...
有效的括号 一、题目 给定一个只包括 '(',')','{','}'...
【Ctfer训练计划】——(三... 作者名:Demo不是emo  主页面链接:主页传送门 创作初心ÿ...