单一职责比较官方的的定义是:应该有且仅有一个原因引起类的变更。说的通俗点其实就像是工厂里的流水线一样,每个车间基本上只做一件事,所有车间组合起来就是一个生产流程。我们写程序的时候也可以这样,将一个类的功能细化一下争取做到一个类只做一件事。
其实这样做大家可能会产生一个疑问:那不是把一个本来只要一个类就可以完成的是分散到多各类去会让程序变的很复杂?其实利用一个类做多件事虽然可以减低程序的复杂度,但是他带来的确实更大的两个问题:
(1)、第一个问题是:对于一个比较复杂的程序,一个类的分工不明确会造成在写程序时的混乱,传个参数可能要想半天这样就大大的影响了写程序的效率。
(2)、第二问题是:一个项目不可能会一次成型,后期会对他进行扩展或者是维护,类的分工不明确在这时就会牵一发而动全身,本来做一个类的修改就行的,但是因为高耦合使得我们必须对多个类进行修改。在商业上会增加成本,在学习上变的高效。
(1)、类的复杂性降低,实现什么功能都清晰明确的定义;
(2)、可读性提高,复杂性降低;
(3)、可读性提高,则是可维护性提高;
(4)、变更引起的风险降低,变更是必不可少的,若接口做好单一原则,对系统的扩展性、维护性都有非常大的帮助;
原文作者:后端Q;如有侵权,请联系管理员删除。