单一职责原则(SRP:Single responsibility principle)又称单一功能原则.它规定一个类应该只有一个发生变化的原因. 一.起因 编码中,需要创建一只小鸟,既能飞,用能走. 我写的时候,我会定义两个接口,IFly,IWalk,然后实现他们. 然后,外部模块需要用到我的"鸟",进行操作.这个时候,有同事过来了,说"按照SRP,你这个鸟有问题" 难道我要提供两只鸟:一只FlyBird,一只WalkBird? 二.问题 "一个类应该只有…
单一职责原则SRP(Single reponsibility principle) BO(Business Object):业务对象 Biz(Business Logic):业务逻辑 SRP最简单的例子:用户信息维护类 单一职责原则SRP定义 应该有且仅有一个原因引起类的变更.(一个接口只有一个职责) SRP例子:电话通话过程 电话通话的过程:拨号.通话.回应.挂断. 如果按照一定职责进行划分:可以分为协议管理和数据传送. 协议管理:拨号和挂机. 数据传送:通话. 这个类中包含两个职责,但是拨号…
1.定义: 不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责.  2.使用场景: 如果类A有两个职责:d1,d2.当职责d1需要修改时,可能会导致原本运行正常的职责d2功能产生问题.即如果一个类包含多种职责,就应该把类拆分.分别建立两个类A.B,让A负责d1,B负责d2.当需要修改某一职责,那么将不会对另外一个功能产生影响. 3.使用特点 一个类(大到模块,小到方法)承担的职责越多,它被复用的可能性就越小,而且一个类承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变…
SRP设计原则面向对象类设计的第一个原则,最优先考虑的因素 一个类应该有且仅有一个职责.所谓一个类的职责是指引起该类变化的原因,如果一个类具有一个以上的职责,那么就会有多个不同的原因 引起该类变化,其实就是耦合了多个互不相关的职责,就会降低这个类的内聚性. 也就是说每一个类只做一件事,那么什么叫做"一件事"? 比如说一个学生信息管理类,这个类有"添加学生信息". "查询学生信息". "修改学生信息". "删除学生 信…
单一职责原则(SRP:The Single Responsibility Principle) 一个类应该有且只有一个变化的原因. There should never be more than one reason for a class to change. 为什么将不同的职责分离到单独的类中是如此的重要呢? 因为每一个职责都是一个变化的中心.当需求变化时,这个变化将通过更改职责相关的类来体现. 如果一个类拥有多于一个的职责,则这些职责就耦合到在了一起,那么就会有多于一个原因来导致这个类的变…
前言 Bob大叔提出并发扬了S.O.L.I.D五大原则,用来更好地进行面向对象编程,五大原则分别是: The Single Responsibility Principle(单一职责SRP) The Open/Closed Principle(开闭原则OCP) The Liskov Substitution Principle(里氏替换原则LSP) The Interface Segregation Principle(接口分离原则ISP) The Dependency Inversion Pr…
这两周我需要对一个历史遗留的功能做一些扩展,正如很多人不愿意碰这些历史遗留的代码一样,我的内心也同样对这样的任务充满反抗.这些代码中充斥着各种null判断(你写的return null正确吗?),不规范的变量命名,层层嵌套的if…else语句.显然面对这样的代码我无从下手,更别提什么重构.单元测试了.我需要的是尽量别动之前的代码,再小心意义的加上if…else语句,我已经无暇顾及下一个维护者的感受了. 造成今天这个局面的原因不在于旧代码没有使用多态.继承.封装,更不是前人没有使用设计模式,在我看…
前言:上篇C#软件设计——小话设计模式原则之:依赖倒置原则DIP简单介绍了下依赖倒置的由来以及使用,中间插了两篇WebApi的文章,这篇还是回归正题,继续来写写设计模式另一个重要的原则:单一职责原则. 软件设计原则系列文章索引 C#软件设计——小话设计模式原则之:依赖倒置原则DIP C#软件设计——小话设计模式原则之:单一职责原则SRP C#软件设计——小话设计模式原则之:接口隔离原则ISP C#软件设计——小话设计模式原则之:开闭原则OCP 一.原理介绍 1.官方定义 单一职责原则,英文缩写S…
第8章 SRP:单一职责原则 一个类应该只有一个发生变化的原因. 8.1 定义职责 在SRP中我们把职责定义为变化的原因.如果你想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责.同时,我们很难注意到这一点.我们习惯于以组的形式去考虑职责.违反SRP的示例代码: public interface Modem { public void Dial(string pno); public void Hangup(); public void Send(char c); public ch…
1. 单一职责原则(Single Responsibility Principle,SRP) 1.1 单一职责的定义 (1)定义:一个类应该仅有一个引起它变化的原因.这里变化的原因就是所说的“职责”. (2)如果一个类有多个引起它变化的原因,也就意味着这个类有多个职责.即把多个职责耦合在一起了. (3)“职责”的粒度不好量化.实际开发中,这个原则最容易违反 1.2 单一职责的优点 (1)可以降低类的复杂度,一个类只负责一项职责,其逻辑比负责多项职责的要简单的多 (2)提高类的可读性,提高系统的可…