必知必会的设计原则——单一职责原则
概述
单一职责原则是最简单的面向对象设计原则!定义为不要存在多于一个导致类变更的原因。通俗地说,即一个类只负责一项职责。说文字比较干巴巴,我们通过上代码来展示案例;
未使用单一职责原则的代码
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();
总结
两种案例大家可以自行对比体会,由于单一职责原则比较简单,一般从字面意思上就能看出,这里不过多叙述。有何疑问,欢迎与我微信沟通。
必知必会的设计原则——单一职责原则相关推荐
- 设计原则(单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则)
设计原则 单一职责原则(SRP) 从三大特性角度看原则: 应用的设计模式: 开放封闭原则(OCP) 从三大特性角度看原则: 应用的设计模式: 里氏替换原则(LSP) 从三大特性角度看原则: 应用的设计 ...
- 六大设计原则-单一职责原则
1.开闭原则 2.接口隔离原则 3.依赖倒置原则 4.迪米特原则 5.里氏替换原则 6.单一职责原则 单一职责原则 针对的问题 类T负责两个不同职责:职责 ...
- Java设计模式七大原则-单一职责原则
目录 概述:设计模式的目的 设计模式七大原则 单一职责原则 单一职责原则注意事项和细节 概述:设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等 ...
- 设计模式原则—单一职责原则
设计模式概念与作用: 设计模式是一套被反复使用的.多数人知晓.经过分类编目的优秀代码设计经验的总结.特定环境下特定问题的处理方法. 1)重用设计和代码 重用设计比重用代码更有意义,自动带来代码重用 2 ...
- Single Responsibility Principle (SRP) - OO设计的单一职责原则
前言 Robert C. Martin氏为我们总结了在面向对象的设计(OOD)中应该遵循的原则,这些原则被称为"Principles of OOD",关于"Princip ...
- 设计原则 单一职责原则、开放封闭原则、依赖倒置原则、里氏代换原则、迪米特法则
目录 1 单一职责原则 2 开放封闭原则 3 依赖倒置原则 4 里氏代换原则 5 迪米特法则 1 单一职责原则 比如:电脑内存坏了就应该更换内存,不应该更换CPU (内存负责内存.CPU负责CPU) ...
- 【设计模式】软件设计七大原则 ( 单一职责原则 | 代码示例 )
文章目录 一.单一职责原则简介 二.单一职责原则代码示例 ( 反面示例 ) 1.不遵循单一职责原则的类 2.测试类 三.单一职责原则代码示例 ( 正面示例 | 类的单一职责 ) 1.用翅膀飞的鸟 2. ...
- 六大设计原则——单一职责原则
单一职责原则的英文名称是Single Responsibility Principle,简称是SRP.这个设计原则备受争议,争议之处就是对职责的定义,什么是类的职责,以及怎么划分类的职责.我们先举例来 ...
- 设计原则-单一职责原则
单一职责原则 文章目录 单一职责原则 概述 单一职责原则问题由来 职责如何理解呢? 什么是职责呢 ? 举例1 Rectangle 个人理解 举例2 Modem SRP核心思想 总结 参考文档 概述 在 ...
最新文章
- pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动最大值(rolling max)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额最大值
- COMMAND 模式
- 2008 mysql 本地安全_如何在Linux系统中建立mysql的本地安全机制?
- kill -HUP 什么意思?
- Python3 爬虫学习笔记 C17【爬虫框架 pyspider — 基本使用】
- Amazon网站架构学习总结
- php怎么查找函数库,php 查找字符串常用函数说明
- 突发 , 谷歌官宣安卓改名了!
- RISC技术市场分析
- 【HTML+CSS】静态网页设计期末大作业——我的家乡无锡印象
- [听风]TBC单体插件数据统计Recount
- iDLG Improved Deep Leakage from Gradients
- C#把月日年帶有 AM、PM的时间格式转换为正常时间格式
- Ruby读取Excel文件的两种方法
- 面包板如何接线电源 图解_消防应急照明EPS应急电源供电系统如何设计?附高清接线参考图...
- oracle expdp 11,oracle11g使用expdp/impdp备份数据
- 小马哥 ------高仿三星S5刷机 高仿三星G9006系列拆机主板机型图与开机界面图
- Rust学习日记番外篇——代码写诗
- og属性优化教程,什么是og标签
- UE4 设置相机裁剪距离
热门文章
- 【JAVA】List转Set并按照List的顺序排序,HashSet、LinkedHashSet、TreeSet元素保存顺序List转换对比
- 国美控权之战,恐怕没有真正的赢家
- PHP使用Sphinx全文检索技术
- 多层感知机Perceptron反向传播BP算法推导(Back Propagation)
- 有没有比较好的手机P图修图APP软件?推荐这8款软件
- 铜线宽度与通过电流的关系
- EasyExcel的简单使用 读写表格
- Filecoin - Trapdoor团队发现PoREP漏洞
- C++解决Curl下载https地址文件出错的问题(curl_easy_perform 返回60)
- Python之父表示:996是不人道的!