首页 > 其他分享 >必知必会的设计原则——单一职责原则

必知必会的设计原则——单一职责原则

时间:2023-02-06 10:33:27浏览次数:33  
标签:Console string 原则 必知 void phoneNum 必会 msg public

概述

单一职责原则是最简单的面向对象设计原则!定义为不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。说文字比较干巴巴,我们通过上代码来展示案例;

未使用单一职责原则的代码

   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(); 

总结

两种案例大家可以自行对比体会,由于单一职责原则比较简单,一般从字面意思上就能看出,这里不过多叙述。

标签:Console,string,原则,必知,void,phoneNum,必会,msg,public
From: https://www.cnblogs.com/mhg215/p/17092053.html

相关文章

  • C/C++内存对齐原则
    C/C++内存对齐what&&why当用户自定义类型时(struct或class),编译器会自动计算该类型占用的字节数。C/C++为什么要内存对齐?我道行太浅,摘抄了网上的一个解释。为了方......
  • 最容易懂的策略模式消除if-else分支,实现开闭原则,提高可扩展性
    1介绍策略模式最常用的场景就是用于消除代码中的if-else,这里所说的if-else并不是说任何简单的判断都引入策略模式来优化,这样反而会增加代码的复杂度。反例:使用策略模式......
  • 设计原则:SOLID、DRY、KISS、YAGNI、LOD
    1.SOLID原则1.1SRP(SingleResponsibilityPrinciple)单一职责一个类或模块只负责完成一个功能。1.2OCP(OpenClosedPrinciple)开闭原则(模块、类、方法)对拓展开放,对......
  • mysql必知必会——GROUP BY和HAVING
    GROUPBY语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表。select子句中的列名必须为分组列或列函数,列函数对于groupby子句定义的每个组......
  • 读Java8函数式编程笔记07_设计和架构的原则
    1. SOLID原则1.1. 开发良好面向对象程序的准则1.2. Liskovsubstitution里氏替换1.3. Interfacesegregation接口隔离1.4. Singleresponsibility单一功能原则1......
  • 设计模式 > 单一职责原则
    SOLID原则并非单纯的1个原则,而是由5个设计原则组成的,它们分别是单一职责原则,开闭原则,里氏替换原则,接口隔离原则和依赖反转原则。单一职责原则(SRP)定义:一个类或者模块只负......
  • 【设计原则】程序设计7大原则
     常言道理论是用来指导实践的,而理论又是通过实践不断检验和修正的结果,理论和实践就是这样相互促进,最后将一个领域推向新的高度。面向对象编程出现的半个多世纪里,设计原则就......
  • ARM学习中的必知基本常识
    1.ARM中一些常见英文缩写解释MSB:最高有效位;LSB:最低有效位;AHB:先进的高性能总线;VPB:连接片内外设功能的VLSI外设总线;EMC:外部存储器控制器;MAM:存储器加速模块;VIC:向量中断......
  • 测试开发必知必会:Pytest框架实战
    每天进步一点点,关注我们哦,每天分享测试技术文章本文章出自【码同学软件测试】码同学公众号:自动化软件测试,领取资料可加:magetest码同学抖音号:小码哥聊软件测试应用场景:......
  • 00-五个原则
    00-五个原则单一职责原则就一个类而言,应该仅有一个引起它变化的原因开放-封闭原则软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改(对扩展开放,对修改封闭;在生活......