1 定义:就一个类而言,应该仅有一个引起它变化的原因。通俗的说,一个类只负责一项职责。
2.作用:在某些时候,我们要进行职责扩散,就是因为某种原因,职责P被分化为粒度更细的职责P1和P2。这样有时候还要考虑一下其他的类的更改,这样会比较麻烦,比如 动物行走,而这个时候要细分了,比如这时候可以划分为了:爬行动物,水生动物,鸟类,行走的动物,他们的行走方式各不相同,改起来还要一个个去找前面类的名称之类的,及其不方便,这样便可使用单一职责原创了。
代码如下,把动物行走拆分成陆生动物走路,水生动物游泳两个接口,并每个接口对应一个实现类
public interface Animal{}
public interface WaterAnimal{}
public class load implements Animal{
System.out.println("动物走路");
}
public class water implements WaterAnimal{
System.out.println("水生动物动物游泳");
}
单一职责原则的优点:
1、可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
2、提高类的可读性,提高系统的可维护性;
3、变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
4、需要说明的一点是单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。