源码分析七大设计原则之单一职责原则(Single Responsibility Principle)

源码分析之七大设计原则

单一职责原则(Single Responsibility Principle)

定义:不要存在多于一个导致类变更的原因,即:一个类只负责一项职责,仅有一个引起它变化的原因。其核心思想:解耦和增强内聚性(高内聚,低耦合)

一个类被修改的几率很大,因此应该专注于单一的功能。如果把多个功能放在同一个类中,功能之间可能就形成了关联,改变其中一个功能,有可能会影响另一个功能,这时就需要新一轮的测试来避免可能出现的问题。另外,多个职责耦合在一起,会影响复用性。

在软件编程中,谁也不希望因为修改了一个功能导致其他的功能发生故障,而避免出现这一问题的方法便是遵循单一职责原则。虽然单一职责原则简单,并且被认为是常识,但是因为有职责扩散,所以即便是经验丰富的程序员写出的程序,也会有违背这一原则的代码存在。所谓的职责扩散,就是因为某种原因,职责 P 被分化为粒度更细的职责 P1 和 P2。

问题由来:类 T 负责两个不同的职责:职责 P1,职责 P2。当由于 P1 需求发生改变而需要修改类 T 时,有可能会导致原本运行正常的职责 P2 功能发生故障。

解决方法:建立两个类 T1 和 T2,T1 完成职责 P1 功能,T2 完成职责 P2 功能。这样,当修改类 T1 时,不会使职责 P2 发生故障风险;同理,当修改 T2 时,也不会使职责 P1 发生故障风险。

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

单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都需要遵循这一重要原则

猜你喜欢

转载自blog.csdn.net/qq_39249094/article/details/121679258