鉴于Mixins通常会将新行为引入类中,这通常意味着一个类将具有多个行为。Single Responsibility and Mixins
如果一个班级有单一责任,则将其定义为只有一个变更理由的班级。
所以,我可以从两个不同的角度
类只有一个变更理由看到这一点。混入的模块也只有一个原因需要改变。如果班级改变,只有班级需要重新测试。如果模块更换,只有模块需要重新测试。因此,SRP是完整的。
这个班现在有两个变化的原因。如果班级更改,班级和模块都需要重新测试。如果模块改变了,那么类和模块都需要重新测试。 Henge,SRP受到侵犯。
使用mixin是否违反了Single Responsibility Principle,最终导致系统维护困难?
如果你需要不相关的类之间的共享行为,这听起来像是另一个类的工作。它可以通过一个没有继承或混合的接口来处理那些不相关的类之间需要的行为。这照顾SRP和DRY。 – Tek 2015-02-19 15:40:04