敏捷开发原则-SRP(单一职责原则)

Posted culushitai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了敏捷开发原则-SRP(单一职责原则)相关的知识,希望对你有一定的参考价值。

SRP(Single Responsibility Principle):

  定义:就一个类而言,应该仅有一个引起它变化的原因。(类,接口,方法等,都应该使用该原则)

  如果一个类承担了过多的职责,那么引起该类变化的原因也会随之变多。

例如:

技术分享图片

 

一个图形类中包含了draw() 绘画功能和 area(), setWidth(), setHeight() 等图形自身的属性。

这样的话 如果图形属性的计算方式发生改变,则这个类就要做出对应的修改。同样的,如果图形的绘画功能做出改变 那么这个类也要同步的做出修改。

这样这个类其实已经开始违反SRP原则,随着Graphical类负责的职责越来越多,那么该类引起变化的原因也越来越多。就等于把这些职责耦合在一起了,这种耦合很容易引起脆弱的设计。

 

 

技术分享图片

如果以这样的方式拆分职责,让不同的类去处理不同的职责,那么这2个类之间的变动就互不影响。

而且单一类中处理单一的职责可以提高代码的可读性,减低代码的复杂度。变相的提高了代码的可维护性。也能使得代码变得高内聚,低耦合。

 

以上是关于敏捷开发原则-SRP(单一职责原则)的主要内容,如果未能解决你的问题,请参考以下文章

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

设计原则

第三章 单一职责原则

单一职责原则进阶——多个地方的不同见解和解读

单一职责原则的介绍

面向对象设计原则 单一职责原则(Single responsibility principle)