原文: https://www.jianshu.com/p/526a70f24ac5
一个类,应该只有一个发生变化的原因。
单一职责原则简称SRP。顾名思义,就是一个类只负责一个职责。
那么这个原则有什么用呢?它让类的职责更单一。这样的话,每个类只需要负责自己的那部分,类的复杂度就会降低。如果职责划分得很清楚,那么代码维护起来也更容易。试想如果所有的功能都放在了一个类中,那么这个类就会变得非常臃肿,而且一旦出现bug,要在所有代码中去寻找;更改某一个地方,可能要改变整个代码的结构,想想都非常可怕。当然一般时候,没有人会去这么写的。
当然,这个原则不仅仅适用于类,对于接口和方法同样适用。即一个接口/方法,只负责一件事情。这样的话,接口会变得简单,方法中的代码也会更少,更易读,易于维护。
事实上,由于一些其他因素影响,类的单一职责在项目中是很难保证的。通常,接口和方法的单一职责更容易实现。
-
代码的粒度降低了,类的复杂度降低了。
-
可读性提高了,每个类的职责都很明确,可读性自然更好。
-
可维护性提高了,可读性提高了,一旦出现 bug ,自然更容易找到他问题所在。
-
改动代码所消耗的资源降低了,更改的风险也降低了。