java基础:面向对象六大设计原则——单一职责原则

单一职责原则(SRP:Single responsibility principle)又称单一功能原则,是面向对象六个基本原则(包括SRP: 单一职责原则、OCP开放封闭原则、LSP里氏替换原则、DIP依赖倒置原则、ISP接口分离原则、迪米特法则)之一。它规定一个类应该只有一个发生变化的原因。

问题由来

之所以会出现单一职责原则就是因为在软件设计时会出现以下类似场景:

T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。

产生原因

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

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

解决办法

遵守单一职责原则,将不同的职责封装到不同的类或模块中。

遵循单一职责原则的优点有:

  • 可以降低类的复杂度,一个类只负责一项职责,其逻辑一定要比负责多项职责简单的多;
  • 提高类的可读性,提高系统的可维护性;
  • 变更引起的风险降低。变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

       注:需要说明的一点是:单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。

 

你可能感兴趣的:(java,java)