【C#】SOLID原则

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

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

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

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

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

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

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

相关推荐
就是有点傻1 小时前
如何使用简单的服务端去接收数据
c#
人工智能AI技术3 小时前
两会“人工智能+“风口已至:C#开发者用Semantic Kernel搭建企业级Agent的3个实战套路
人工智能·c#
进击的编程阿伟6 小时前
C#开发工程师-面经
面试·c#
缺点内向6 小时前
C#实战:使用Spire.XLS for .NET 将Excel转换为SVG图片
c#·自动化·.net·excel
小曹要微笑7 小时前
C#的运算符重载
开发语言·c#·运算符重载·c#运算符重载
我是唐青枫7 小时前
C#.NET Channel 深入解析:高性能异步生产者消费者模型实战
开发语言·c#·.net
Crazy Struggle7 小时前
C# + ViewFaceCore 快速实现高精度人脸识别
c#·人脸识别·.net·开源项目
小曹要微笑7 小时前
委托(Delegate)在C#中的概念与应用
前端·javascript·c#
人工智能AI技术8 小时前
Oracle裁员3万人的警钟:C#程序员如何构建AI工具链反杀,从“被替代“到“驾驭AI“
人工智能·c#