c# 设计模式-单一原则

解释:对于一个类而言,应该只有一个发生变化的原因。(单一职责不仅仅是指类)

代码足够简单,塞在一起没有影响。

单一职责原则的优点就是高内聚,使得模块看起来有目的性,结构简单,修改当前模块对于其他模块的影响很低。缺点就是如果过度的单一,过度的细分,就会产生出很多模块,无形之中增加了系统的复杂程度。

方法:方法多个分支,还可能扩展变化,最后拆分成多个方法

类:接受输入-数据验证-逻辑计算-数据库操作-日志

接口:也会把不同的功能接口,独立开来。

 如:public class List<T> : ICollection<T>, IEnumerable<T>, IEnumerable, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>, ICollection, IList

类库:把项目拆分成多个类库,重用-方便维护

项目:客户端-管理后台

1.在不使用单一原则,这样每次添加一个动物时会修改源代码

复制代码
 1         public class Animal
 2         {
 3             public string _Name;
 4             public Animal(string name)
 5             {
 6                 this._Name = name;
 7             }
 8 
 9             public void Breath()
10             {
11                 if (_Name == "")
12                 {
13                     Console.WriteLine("呼吸水");
14                 }
15                 else if (_Name == "")
16                 {
17                     Console.WriteLine("呼吸空气");
18                 }
19             }
20         }
复制代码

 

2.使用单一原则,每个类拆分,这样扩展另外一种动物,只需要扩展新增一个类就行。

复制代码
 1         public abstract class AbsAnimal
 2         {
 3             public string _Name;
 4             public AbsAnimal(string name)
 5             {
 6                 this._Name = name;
 7             }
 8 
 9             public abstract void Breath();
10         }
11 
12 
13         public class FishAnimal : AbsAnimal
14         {
15             public FishAnimal(string name) :base(name)
16             {}
17             public override void Breath()
18             {
19                 Console.WriteLine("呼吸空气");
20             }
21         }
复制代码

 

posted @   vba是最好的语言  阅读(94)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示