首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微头条
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
必知必会的设计原则——单一职责原则
返回列表
发新帖
必知必会的设计原则——单一职责原则
[复制链接]
发表于 2023-2-6 16:40:54
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
概述
单一职责原则是最简单的面向对象设计原则!定义为不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。说文字比较干巴巴,我们通过上
代码
来展示案例;
未使用单一职责原则的
代码
public class Telphone
{
public void Dial(string phoneNum)
{
Console.WriteLine($"给谁{phoneNum}打电话");
}
public void HangUp(string phoneNum)
{
Console.WriteLine($"挂断{phoneNum}打电话");
}
public void SendMessage(string msg)
{
Console.WriteLine($"发送{msg}");
}
public void ReciveMessage(string msg)
{
Console.WriteLine($"接收{msg}");
}
}
复制
代码
内部变化: 如果telphone内部的方法发生变化 就需要修改 不符合单一职责。
外部变化:需要添加新的方法,也需要修改telphone 这是应该的,如果同时内部发生变化就不符合单一职责原则。
使用单一职责原则的代码
打电话的类:
public interface IDial
{
public void DialPhoneNum(string phoneNum);
}
public class Dial: IDial
{
public void DialPhoneNum(string phoneNum)
{
Console.WriteLine($"给谁{phoneNum}打电话");
}
}
复制代码
挂电话的类:
public interface IHangUp
{
public void HangUpPhoneNum(string phoneNum);
}
public class HangUp: IHangUp
{
public void HangUpPhoneNum(string phoneNum)
{
Console.WriteLine($"挂断{phoneNum}打电话");
}
}
复制代码
发送接收消息的类:
public interface IMessage
{
public void SendMessage(string msg);
public void ReciveMessage(string msg);
}
public class Message : IMessage
{
public void SendMessage(string msg)
{
Console.WriteLine($"发送{msg}");
}
public void ReciveMessage(string msg)
{
Console.WriteLine($"接收{msg}");
}
}
复制代码
调用:
public class Telphone2
{
private IHangUp _hangUp;
private IMessage _message;
private IDial _dial;
public Telphone2()
{
_hangUp = new HangUp();
_message= new Message();
_dial= new Dial();
}
public void Output()
{
_dial.DialPhoneNum("13067707791");
_hangUp.HangUpPhoneNum("13067707791");
_message.SendMessage("mhg");
_message.ReciveMessage("mhg");
}
}
复制代码
//控制台调用
new Telphone2().Output();
Console.ReadLine();
复制代码
总结
两种案例大家可以自行对比体会,由于单一职责原则比较简单,一般从字面意思上就能看出,这里不过多叙述。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
继续阅读请点击广告
回复
使用道具
举报
返回列表
徐锦洪
+ 我要发帖
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表