鉴于Mixins 通常会在一个类中引入新的行为,这通常意味着一个类会有多个行为。
如果一个类有一个单一的责任,这被定义为只有一个改变原因的类。
所以,我可以从两个不同的角度来看
班级只有一个改变的理由。混入的模块也只有一个改变的理由。如果班级发生变化,只有班级需要重新测试。如果模块被改变,只有模块需要重新测试。因此,SRP 是完整的。
班级现在有两个改变的原因。如果更改了类,则类和模块都需要重新测试。如果模块被更改,则类和模块都需要重新测试。Henge,SRP 被违反了。
使用 mixins 是否违反了单一职责原则,最终导致系统更难维护?