【C#】SOLID原则

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

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

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

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

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

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

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

相关推荐
tang_04275 小时前
【Hi.Ltd 专题】第7期:Threading 采集线程、锁与 LRU 缓存
经验分享·c#·hi.ltd系列
A_nanda5 小时前
C# 界面卡顿:从定位到根治
c#
2501_930707786 小时前
使用C#代码为新创建的 Word 文档创建目录
c#·word
czhc11400756637 小时前
同一个数,两把尺子:六组“看着一样、其实不一样“
c#
花北城8 小时前
【C#底层库】access_token授权鉴权验证
c#·鉴权·token·授权
rick9778 小时前
C# 动态代理与 DispatchProxy:从原理到实战的完整指南
c#
tang_04278 小时前
【Hi.Ltd 专题】第8期:Managements 插件、单例与服务定位
经验分享·c#·hi.ltd系列
曹牧19 小时前
C#:24小时制时间
c#
唐青枫1 天前
别急着拆服务:C#.NET 微服务架构从边界设计到实战
c#·.net
czhc11400756631 天前
从一份运行日志还原一次生产卡死:三个信号与一场“假卡死“
c#