c# 设计模式-单一原则
2021/8/24 1:05:34
本文主要是介绍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 }
public class Animal { public string _Name; public Animal(string name) { this._Name = name; }
public void Breath() { if (_Name == "鱼") { Console.WriteLine("呼吸水"); } else if (_Name == "鸟") { Console.WriteLine("呼吸空气"); } } }
这篇关于c# 设计模式-单一原则的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#