【C#】SOLID原则

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

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

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

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

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

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

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

相关推荐
View121383 小时前
在 .NET 中使用 Moonshot Kimi + AgentFramework:从 SDK 到 Agent 的完整实践
c#·agent·kimi
FlDmr4i285 小时前
.NET 10 & C# 14 New Features 新增功能介绍-扩展成员Extension Members
开发语言·c#·.net
QJtDK1R5a6 小时前
C# 14 中的新增功能
开发语言·c#
雨浓YN8 小时前
WebApi 通讯-DeepSeek API调用文档
c#
yuan199979 小时前
C# 断点续传下载文件工具设计与实现
开发语言·c#
雨浓YN11 小时前
WebApi 通讯-自写Demo技术文档
c#
唐青枫12 小时前
C#.NET TPL Dataflow 深入解析:数据流管道、背压控制与实战取舍
c#·.net
喵叔哟12 小时前
4.【.NET10 实战--孢子记账--产品智能化】--C# 14 新语法特性详解与实战应用
java·c#·.net
Khsc434ka12 小时前
.NET 10 与智能体时代的架构演进:以 File-Based Apps 为核心的 C# 生态重塑
架构·c#·.net
jackylzh13 小时前
C# 中 LINQ 和 Lambda 表达式的 基本用法
c#