【C#】SOLID原则

【S】:单一原则,一个类或接口中不能出现两个不同的东西。示例:我有一个工作接口,里面有清洁、写代码两种工作;

然后具体实现时,程序员和清洁工都要继承这个工作接口,但是两者都只需要继承其中一个接口就行,为了实现,将清洁和写代码两个接口分开写,即可理解为单一原则;

【O】:开放原则,我需要扩展某个方法时,不能影响之前的代码,或者说不需要重新修改原有的方法。示例:我定义了一个计算各个形状的面积的方法,我定义一个通用接口计算面积,然后再定义长方形、正方形等类去继承这个面积接口,那么我需要新增一个去几面圆的面积时,我就可以新增一个圆的类去继承这个面积接口。这样我就没有修改原有的类。

【L】:里氏原则:子类完全继承父类所有的,不需要改动。示例同上,当我定义了一个长方形的类,计算正方形的面积公式的前提长!=宽,长x宽。当我用正方形继承长方形时,计算面积的公式适用,但是条件不适用,要改成长=宽,此时,我的子类正方形就会要改父类长方形的东西,那么这就违背了里氏原则,正确的写法就和开放原则的示例一样才可以。

【I】接口隔离原则,和单一原则也差不多,不同的两个东西不要放在一个类或者接口里面

【D】:依赖倒置原则,核心的说法是两个具体的类应该直接依赖抽象才对。类似于接口、服务层、控制层三者的关系。服务类继承接口,控制层注入接口,控制层通过接口来调用具体的方法。这才是正确的关系

以上是我根据以下博文写的笔记,大家看不懂的话,可以直接看原文:SOLID原则:让代码像积木一样灵活可靠

相关推荐
北域码匠10 小时前
Karatsuba乘法超详细解析(原理+流程+性能分析+纯原生C#无第三方库完整实现)
算法·c#·大数乘法·高精度计算·数据结构与算法·分治算法·karatsuba 乘法
syker12 小时前
WinMaster v0.3.3 完整使用手册
c#
Risehuxyc13 小时前
C# 将doc转换为docx
开发语言·c#·xhtml
henreash17 小时前
Orleans10的非对称部署(部署更友好的方式)
c#
geovindu18 小时前
CSharp: Recursion Algorithm
开发语言·后端·算法·c#·递归算法
geats人山人海18 小时前
c# 第八章 多态与案例
开发语言·c#
F202269748619 小时前
西门子 PLC 与 C# 通信_项目实战
大数据·c#
qq_337763201920 小时前
国际期货资管系统开发方案|内外盘交易平台源码授权与二次开发支持
java·c语言·开发语言·c++·c#