现在我们来看一下单一职责原则,我们先来看一下定义,不要存在多于一个导致类变更的原因,那这句话
怎么理解,假设我们有一个类,负责两个职责,职责一和职责二,一旦我们的需求变更,比如说职责一相关的功能,需要发生改变,
那我们在修改class类的时候,有可能原本变成正常的职责二发生故障,那这个就是我们在构造Class的时候,没有遵循单一职责原则,
那再回到这个定义来说,也就是对于这个Class,职责一和职责二这两个职责,需求发生改变的时候,都会影响这个class,那就是说
这个class他存在两个职责,这两个职责都有可能发生变更,他存在两个改变类的原因,那这个定义就很好理解了,那解决方案就是遵循
单一职责原则,对于这两个职责,分别建立class1和class2,分别负责职责一和职责二,那这样我们即使在修改职责一的时候,对于负责
职责二的class2,也不会发生变更,也不会是他发生故障,这样也就减轻了负责职责二的class2发生故障的风险,同理修改class2的时候,
也不会使class1发生故障,那单一职责原则,体现在哪几个方面呢,我们来看一下,首先一个类,一个接口,一个方法,体现在这个三个方面,
那对于这句话,就是定义的一个扩展,一个类,一个接口,或者一个方法,只负责一项职责,对于他的优点,我们来看一下,降低类的复杂度,
提高类的可读性,提高系统的可维护性,降低变更引起的风险,那我们一句一句来解读,首先减低类的复杂度,一个类只负责一项职责,
对于的逻辑肯定要比负责多个职责简单的多,提高类的可读性,那这个类比较简单,他也就更可读一些,同时也提高了系统的可维护性,
对于降低变更引起的风险,怎么看呢,首先变更是必然的,我们要接受变更,如果单一职责原则遵循的好,当修改一个功能时,可以显著降低
对其他功能的影响,那这里面需要说明的一点是,单一职责原则不仅仅是面向对象编程所特有的,只要是模块化的程序设计,都适用于单一
职责原则,那接下来我们就一起来coding,在coding的过程中我们一起来体会单一职责原则