单一职责原则:

  对象不应承担太多功能,正如一心不能而用,比如太多的工作(种类)会使人崩溃。唯有专注才能保证对象的高内聚;唯有唯一,才能保证对象的细粒度。

解决问题:

  假如有A和B两个类,当A需求发生改变需要修改时,不能导致B类出问题。

现状:

  在实际情况很难去做到单一职责原则,因为随着业务的不断变更,类的职责也在发生着变化,即职责扩散。

  • 如类A完成职责P的功能,但是随着后期业务细化,职责P分解成更小粒度的P1与P2,这时根据单一职责原则则需要拆分类A以分别满足细分后的职责P1和P2。

  • 但是实际开发环节,若类的逻辑足够简单,可以在代码上级别上违背单一职责原则;

  • 若类的方法足够少,可以在方法级别上违背单一职责原则。

优点:

  1、降低类的功能复杂度

  2、提高系统的可维护性

  3、变更风险低