概述

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

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

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

总结

两种案例大家可以自行对比体会,由于单一职责原则比较简单,一般从字面意思上就能看出,这里不过多叙述。有何疑问,欢迎与我微信沟通。

必知必会的设计原则——单一职责原则相关推荐

  1. 设计原则(单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则)

    设计原则 单一职责原则(SRP) 从三大特性角度看原则: 应用的设计模式: 开放封闭原则(OCP) 从三大特性角度看原则: 应用的设计模式: 里氏替换原则(LSP) 从三大特性角度看原则: 应用的设计 ...

  2. 六大设计原则-单一职责原则

    1.开闭原则        2.接口隔离原则 3.依赖倒置原则 4.迪米特原则             5.里氏替换原则     6.单一职责原则 单一职责原则 针对的问题 类T负责两个不同职责:职责 ...

  3. Java设计模式七大原则-单一职责原则

    目录 概述:设计模式的目的 设计模式七大原则 单一职责原则 单一职责原则注意事项和细节 概述:设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等 ...

  4. 设计模式原则—单一职责原则

    设计模式概念与作用: 设计模式是一套被反复使用的.多数人知晓.经过分类编目的优秀代码设计经验的总结.特定环境下特定问题的处理方法. 1)重用设计和代码 重用设计比重用代码更有意义,自动带来代码重用 2 ...

  5. Single Responsibility Principle (SRP) - OO设计的单一职责原则

    前言 Robert C. Martin氏为我们总结了在面向对象的设计(OOD)中应该遵循的原则,这些原则被称为"Principles of OOD",关于"Princip ...

  6. 设计原则 单一职责原则、开放封闭原则、依赖倒置原则、里氏代换原则、迪米特法则

    目录 1 单一职责原则 2 开放封闭原则 3 依赖倒置原则 4 里氏代换原则 5 迪米特法则 1 单一职责原则 比如:电脑内存坏了就应该更换内存,不应该更换CPU (内存负责内存.CPU负责CPU) ...

  7. 【设计模式】软件设计七大原则 ( 单一职责原则 | 代码示例 )

    文章目录 一.单一职责原则简介 二.单一职责原则代码示例 ( 反面示例 ) 1.不遵循单一职责原则的类 2.测试类 三.单一职责原则代码示例 ( 正面示例 | 类的单一职责 ) 1.用翅膀飞的鸟 2. ...

  8. 六大设计原则——单一职责原则

    单一职责原则的英文名称是Single Responsibility Principle,简称是SRP.这个设计原则备受争议,争议之处就是对职责的定义,什么是类的职责,以及怎么划分类的职责.我们先举例来 ...

  9. 设计原则-单一职责原则

    单一职责原则 文章目录 单一职责原则 概述 单一职责原则问题由来 职责如何理解呢? 什么是职责呢 ? 举例1 Rectangle 个人理解 举例2 Modem SRP核心思想 总结 参考文档 概述 在 ...

最新文章

  1. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值
  2. COMMAND 模式
  3. 2008 mysql 本地安全_如何在Linux系统中建立mysql的本地安全机制?
  4. kill -HUP 什么意思?
  5. Python3 爬虫学习笔记 C17【爬虫框架 pyspider — 基本使用】
  6. Amazon网站架构学习总结
  7. php怎么查找函数库,php 查找字符串常用函数说明
  8. 突发 , 谷歌官宣安卓改名了!
  9. RISC技术市场分析
  10. 【HTML+CSS】静态网页设计期末大作业——我的家乡无锡印象
  11. [听风]TBC单体插件数据统计Recount
  12. iDLG Improved Deep Leakage from Gradients
  13. C#把月日年帶有 AM、PM的时间格式转换为正常时间格式
  14. Ruby读取Excel文件的两种方法
  15. 面包板如何接线电源 图解_消防应急照明EPS应急电源供电系统如何设计?附高清接线参考图...
  16. oracle expdp 11,oracle11g使用expdp/impdp备份数据
  17. 小马哥 ------高仿三星S5刷机 高仿三星G9006系列拆机主板机型图与开机界面图
  18. Rust学习日记番外篇——代码写诗
  19. og属性优化教程,什么是og标签
  20. UE4 设置相机裁剪距离

热门文章

  1. 【JAVA】List转Set并按照List的顺序排序,HashSet、LinkedHashSet、TreeSet元素保存顺序List转换对比
  2. 国美控权之战,恐怕没有真正的赢家
  3. PHP使用Sphinx全文检索技术
  4. 多层感知机Perceptron反向传播BP算法推导(Back Propagation)
  5. 有没有比较好的手机P图修图APP软件?推荐这8款软件
  6. 铜线宽度与通过电流的关系
  7. EasyExcel的简单使用 读写表格
  8. Filecoin - Trapdoor团队发现PoREP漏洞
  9. C++解决Curl下载https地址文件出错的问题(curl_easy_perform 返回60)
  10. Python之父表示:996是不人道的!