概述
单一职责原则是最简单的面向对象设计原则!定义为不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。说文字比较干巴巴,我们通过上代码来展示案例;
未使用单一职责原则的代码
- 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();
复制代码 总结
两种案例大家可以自行对比体会,由于单一职责原则比较简单,一般从字面意思上就能看出,这里不过多叙述。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |