Single Responsibility Principle(SRP): There should never be more than one reason for a class to change.
单一职责原则的定义:应该有且只有一个原因导致类的变更。
按照字面意思理解,一个类应该只有一个功能才符合单一职责原则。
单一职责原则的好处:
1.因为只有一个职责,类的复杂度会降低;
2.低复杂度的类,使得可读性提高;
3.因为类的的低复杂性,使得程序可维护性提高;
4.降低了类之间的耦合度,符合开放封闭原则。减小了需求变化对设计的影响。
如果一个类承担的职责过多,一个职责的变化可能会影响这个类完成其他职责的能力.职责间的耦合会导致职责发生变化时,原有的设计遭到破坏.
实际上,这个原则可以看做一种思想。方法或函数最好也应用符合单一职责。这样,当你把自己开发的模块接口公布给团队中的其他人的时候,让对方可以从方法或函数名称大概猜测出其功能,这一点微软的API做的非常不错。相应的,如果你开发了一个非常复杂的函数,其使用一定不是方便的(至少需要很长的接口说明)。
就我个人的理解,单一职责与越来越细化的社会分工有相似之处。一个非常复杂的生产过程,组成它的每一个步骤确实非常简单而可快速完成的。但是,函数调用深度对程序性能的影响,是软件设计人员需要考量的因素。
总结:单一职责原则在理论上是非常正确的,但是在具体实现中,需要考量多种因素(工期,程序复杂度,成本等)。