设计模式之美(5)-单一职责原则

279 阅读2分钟

以下的内容大部分来自极客时间的专栏-设计模式之美

如何理解单一职责原则(SRP)

设计模式中的SOLID原则,他并不是由一个原则组成,他由五个原则组成,分别是:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖翻转原则。

单一职责原则,英文是Single Responsiblity Principle,英文描述是:A class or module should have a single reponsibility.中文意思就是:一个类或模块只负责完成一个职责。

在这里有两个对象,一个是类,一个是模块。有两种理解方式,一种是:把模块看作比类更加抽象的概念,类也可以看作模块。另外一种理解是:把模块看作比类更加粗粒度的代码块,模块中包含多个类,多个类组成一个模块。

单一职责原则的定义描述,一个类只负责一个职责或者功能。也就是说,不要涉及大而全的类,要设计粒度小,功能单一的类。换个角度讲就是,一个类包含两个或者两个以上业务不相干的功能,那就是职责不够单一,应该拆分成功能更加单一,粒度更细的类。

可以根据以下几条判断原则,来考虑是否单一职责:

1、类中的代码行数、函数或者属性过多,会影响代码的可读性和可维护性,我们就需要考虑对类进行拆分;

2、类依赖的其他类过多,或者依赖类的其他类过多,不符合高内聚、低耦合的设计思想,我们就需要对类进行拆分;

3、私有方法过多,我们就要考虑能否将私有方法独立到新的类中,设置为public方法,供更多的类使用,从而提高代码复用性;

4、比较难给类起一个合适的名字,很难用一个业务名词概括,或者只能用一些笼统的manager、context之类的词语来明明,这就说明类的职责定义不够清晰;

5、类中大量的方法都是几种操作类中的某几个属性。