概述
单一职责原则是最简单的面向对象设计原则!定义为不要存在多于一个导致类变更的原因。通俗地说,即一个类只负责一项职责。说文字比较干巴巴,我们通过上代码来展示案例;.
未使用单一职责原则的代码
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();
总结
两种案例大家可以自行对比体会,由于单一职责原则比较简单,一般从字面意思上就能看出,这里不过多叙述。有何疑问,欢迎与我微信沟通。
