敏捷软件开发 笔记--单一职责原则(SRP)

原创 2007年09月12日 15:17:00
就一个类而言,应该仅有一个引起它变化的原因。
原因:
1每一个职责都是变化的一个轴线,当需求变化时,该变化会反映为类的职责的变化。如果一个类承担了多于一个的职责,那么引起它变化的原因就会有多个。
2如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一个职责的变化可能会削弱或则抑制这个类完成其他职责的能力。
什么是职责?
在SRP中,把职责定义为“变化的原因”。如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。
软件的臭味?
1僵化性:很难对系统进行改动,因为每个改动都会迫使许多对系统其他部分的其他改动。
2脆弱性:对系统的改动会导致系统总和改动的地方在概念上无关的许多地方出现问题。
3牢固性:很难解开系统的纠结,使之成为一些可在其他系统中重用的组件。
4粘滞性:做正确的事情比做错误的事情要困难。
5不必要的复杂性:设计中包含有不具任何直接好处的基础结构。
6不必要的重复:设计中包含有重复的结构,而该重复的结构本可以使用单一的抽象进行统一。
7晦涩性:很难阅读,理解。没有很好地表现出意图。 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

敏捷软件开发 读书笔记——OO五大原则(1.SRP 单一职责原则)

一点说明:OO的五大原则是指SRP、OCP、LSP、DIP、ISP。这五个原则是书中所提到的。除此之外,书中还提到一些高层次的原则用于组织高层的设计元素,这些放到下次再写。当然,OO设计的原则可能不止...

软件设计原则----单一职责原则(SRP)

陈述: 就一个类而言,应该只有一个导致其变化的原因 分析: 一个职责就是一个变化的轴线。 一个类如果承担的职责过多,就等于将这些职责耦合在一起。一个职责的变化可能会虚弱或者抑止这个类完成其它职...

软件设计原则----单一职责原则(SRP)

陈述: 就一个类而言,应该只有一个导致其变化的原因 分析: 一个职责就是一个变化的轴线。 一个类如果承担的职责过多,就等于将这些职责耦合在一起。一个职责的变化可能会虚弱或者抑止这个类完成其它职...

六大原则之“单一职责原则(SRP)“笔记

1.单一职责原则,(Single Responsibility Principle). 定义:There should never be more than one reason for a c...

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

RP是所有设计原则最简单的,但也是最难运用的。现实工作中,关于一个类是否符合SRP,或者是否有必要符合SRP的讨论是经常发生的。争论的关键在于职责的定义,但我理解SRP真正的核心是关注于变化。

深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP

前言 Bob大叔提出并发扬了S.O.L.I.D五大原则,用来更好地进行面向对象编程,五大原则分别是: The Single Responsibility Principle(单一职责SRP...

深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP

前言 Bob大叔提出并发扬了S.O.L.I.D五大原则,用来更好地进行面向对象编程,五大原则分别是: The Single Responsibility Principle(单一职责SRP...

深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP 转自 博客园 汤姆大叔

最终代码 function Event(name) { var handlers = []; this.getName = fu...

电商架构设计-通过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性

个人观察1.通过系统和业务拆分,遵循单一职责原则SRP,保障整个系统的可用性和稳定性。2.单一职责原则SRP,真的很关键,广大程序员需要不断深入理解这个原则。3.架构图是架构师的重要输出,通过图可以直...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)