面向对象五大原则之一:单一职责原则(自我理解)

Posted zzfx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象五大原则之一:单一职责原则(自我理解)相关的知识,希望对你有一定的参考价值。

http://www.cnblogs.com/seacryfly/archive/2011/12/29/2305965.html

只有类对应的(唯一)职责(需求)的变更才会引起代码的重构。

The single responsibility principle states that every module or class should have responsibility over a single part of the functionality provided by the software, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility. Robert C. Martin expresses the principle as follows:[1]

 

A class should have only one reason to change.

 

2.2  单一职责原则

2.2.1 引言

         一个优良的系统设计,强调模块间保持低耦合、高内聚的关系,在面向对象设计中这条规则同样适用,所以面向对象的第一个设计原则就是:单一职责原则(SRP,Single Responsibility Principle)。

         单一职责,强调的是职责的分离,在某种程度上对职责的理解,构成了不同类之间耦合关系的设计关键,因此单一职责原则或多或少成为设计过程中一个必须考虑的基础性原则。

2.2.2 引经据典

         关于单一职责原则,其核心的思想是:

                  一个类,最好只做一件事,只有一个引起它变化的原因。

    单一职责原则可以看作是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将导致职责依赖,相互之间就产生影响,从而极大的损伤其内聚性和耦合度。单一职责,通常意味着单一的功能,因此不要为类实现过多的功能点,以保证实体只有一个引起它变化的原因。

    因此,SRP原则的核心就是要求对类的改变只能是一个,对于违反这一原则的类应该进行重构,例如以Façade模式或Proxy模式分离职责,通过基本的方法Extract Interface、Extract Class和Extract Method进行梳理。

 

 

以上是关于面向对象五大原则之一:单一职责原则(自我理解)的主要内容,如果未能解决你的问题,请参考以下文章

php的开始之路

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

面向对象五大原则

面向对象原则之一 里氏替换原则

面向对象原则之一 依赖倒置原则

面向对象原则之一 接口隔离原则