总结笔记
单一职责原则(SRP)
- 很多时候都以为,单一职责只是每个模块(函数)只做一件事,但这不是它的全部只是它的底层实现细节,其描述还有:任何一个软件模块都应只对某一类行为者负责,具体来说我们经常使用的词汇 "复用",而复用是要根据行为场景来的。
反面教材:
比如一个员工类下有三个函数,函数1 面向财务 工资报表,函数2 面向 HR 工时报表, 函数3 面向员工 补卡报表,为了“复用”我们可能会把 函数1函数2抽出一个函数4(计算工时),但这其实是一个误区,我自己在工作中也会碰到同事写的这样的代码,假设我现在需要财务根据市场可以修改工时计算方法,负责修改的人发现函数1(工资报表)依赖于 函数4(计算工时)但可能不会发现函数2(工时报表)也依赖于函数4(计算工时),显然HR们不知道他们的工时报表计算已经变成了财务的计算工时方式.