设计原则(六):单一职责原则

star2017 1年前 ⋅ 662 阅读

定义

单一职责原则:就一个类而言,应该仅有一个引起它变化的原因,即该类应该只有一个职责。

该原则由罗伯特·C·马丁(Robert C. Martin)于《敏捷软件开发:原则、模式与实践》一书中给出的。马丁表示此原则是基于【汤姆·狄马克】(Tom DeMarco)和Meilir Page-Jones的著作中的【内聚性】原则发展出的。

如果一个类承担的职责过多,就等于把这些职责耦合在一起了,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守单一职责原则。

则原则的核心就是解耦增强内聚性

职责扩散

只要是程序设计人员都清楚应该写出高内聚低耦合的程序,但是很多耦合常常发生在不经意之间,其原因就是:

职责扩散:因为某种原因,某一职责被分化为颗粒度更细的多个职责了。

解决该问题的方法就是:遵守单一职责原则,将不同的职责封装到不同的类或模块中。

优缺点

优点

  • 降低类的复杂度,一个类只负责一个职责,该类的单一职责逻辑就比多职责逻辑简单多了。
  • 提高类可维护性,单一职责易于维护,降低了变更引起的风险。

缺点

  • 如果职责化分的很细的话,每个职责都由一个单独的类负责,可能会导致类膨胀反而变的复杂。

    简单的例了,一个家庭有很多每天必做的事,洗衣,拖地,做饭,不可能每件事都雇一个佣人,只有单某件事扩散变得复杂了,然后再把该事件独立出来由一个单独的人负责。

更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: