敏捷软件开发——单一职责原则(SRP)

定义:

简单来说,单一职责原则(SRP)就是对对一个类而言,应该仅有一个引起它变化的原因。

什么是职责?

在SRP中,职责 =  a reason for change 。如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个职责。

具体的例子可以看敏捷软件开发 p91 。

SRP是所有原则找那个最简单的之一,也是最难正确运用的之一。我们会自然地把职责结合在一起。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。

不好意思,写的有点简单了?,刚刚看到这部分,后面会有具体的例子(薪水 支付系统)来运用这些设计原则。

时间: 2024-10-21 05:02:27

敏捷软件开发——单一职责原则(SRP)的相关文章

[OOD] 为什么单一职责原则(SRP)是最难运用的

单一职责原则(SRP)已经几乎是每一个程序员都知道的设计原则.最早由Robert C. Martin在<<敏捷软件开发 - 原则.模式与实践>>中正式提出.书中作者在结论中提到:  SRP是所有设计原则最简单的,但也是最难运用的.(中文翻译有之一,略去了) 现实工作中,关于一个类是否符合SRP,或者是否有必要符合SRP的讨论是经常发生的.争论的关键在于职责的定义,但我理解SRP真正的核心是关注于变化.这并不是我的新见解,全是来自Martin大叔的解释: 首先职责的定义是: 引起变化

敏捷开发:原则,模式与实践——第8章 单一职责原则SRP

鲍勃大叔说: 单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因. 我最开始理解成只能有一个原因去改变,跟我以前的认知有问题,从我开始学OOP以来,我觉得一个类就是一个事物的抽象,比如书,BOOK类,如果按照我理解的意思,book类就有很多可以改变它的原因,例如翻书或者买书,我感觉SRP说的是函数的职责,不是类的职责,于是我就去找了一个同学讨论,然后我们讨论了一会,得出的结论是这样的(以保龄球为例): SRP指的是只改变保龄球相关的内容算一件事,如果我用一个比赛类去代替保龄球的话

Java 设计模式(十) 单一职责原则(SRP)

单一职责原则(Single Responsibility Principle) SRP 基本概念 单一职责原则 定义:应该有且仅有一个原因引起类的变更,也就是接口或类和职责的关系是一一对应的. 难点:职责的划分: 在不同情景和生产环境下我们对职责的细化是不同的(职责单一的相对性) 单一职责原则提出的是一个评价接口是否优良的标准,但是职责和变化原因是不可度量的,因项目而异,因环境而异(不可度量性) 优势: 类的复杂性降低:每个类或接口都只实现单一的职责,定义明确清晰 可读性提高:定义明确清晰,自然

架构师之路——单一职责原则SRP (我单纯,我快乐)

定义: 不要存在多于一个导致类变更的原因.通俗地讲,一个类只做一件事情. 单一职责原则的好处: 1.类的复杂性降低,实现什么职责都有清晰明确的定义: 2.可读性提高,复杂性降低,那当然可读性提高了: 3.可维护性提高,可读性提高,那当然更容易维护了: 4.变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性.维护性都有非常大的帮助. 建议: 接口一定要做到单一职责,类的设计尽量做到只有一个原因引起变化 SRP好处

2单一职责原则SRP

一.什么是单一职责原则 单一职责原则(Single Responsibility Principle ): 就一个类而言,应该仅有一个引起它变化的 原因. 二.多功能的山寨手机 山寨手机的功能: 拍照.摄像.手机游戏.网络摄像头.GPS.炒股 等等. 功能多.但是每一个功能都不强. 拍摄功能 ------>专业摄像机或照相机 手机游戏 ------>PSP 网络摄像头---->专业摄像头 GPS功能------>专业GPS导航系统 三.烦人的山寨手机 每一个职责都是一个变化的轴线,

敏捷软件开发——开放—封闭原则(OCP)

由来: 怎么样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一版本以后不断推出新的版本呢?bertrand meyer 在1988年提出的著名的开发-封闭原则(the open-closed princle)为我们提供了指引. 遵循开放-封闭原则设计出的模块具有两个主要特征: 1. "对于扩张是开放的"(open for extension) 这以为着模块的行为是可以扩展的.当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的行为.也就是说,我们可以改变

(1)Single Responsibility Principle【单一职责原则】

单一职责原则 SRP:Single responsibility principle [概述]单一职责原则又称单一功能原则,面向对象五个基本原则(SOLID)之一.它规定一个类应该只有一个发生变化的原因.该原则由罗伯特·C·马丁(Robert C. Martin)于<敏捷软件开发:原则.模式和实践>一书中给出的.马丁表示此原则是基于汤姆·狄马克(Tom DeMarco)和Meilir Page-Jones的著作中的内聚性原则发展出的. 所谓职责是指类变化的原因.如果一个类有多于一个的动机被改变

《大话设计模式》——单一职责原则

单一职责原则(SRP):就一个类而言,应该仅有一个能引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力.这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏. 软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离. 如果能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责.就应该考虑类的职责分离.

第3章 单一职责原则

单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因. 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能削弱或者抑制这个类完成其他职责的能力.这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏. 软件设计真正要做的许多内容,就是发现职责并把哪些职责相互分离.如果你能够像到多于一个的动机去改变一个类,那么这个类就多于一个的职责,就应该考虑类的职责分离. 比如俄罗斯方块游戏,在移动端移植到PC端,可以将界面类和逻辑类分离,达到复用的目的. 第3章