【发布时间】:2011-03-17 23:55:27
【问题描述】:
鉴于Mixins 通常将新行为引入到一个类中,这通常意味着一个类将具有多个行为。
如果一个类有一个单一的职责,这被定义为只有一个改变原因的类。
所以,我可以从两个不同的角度来看待这一点
该类只有一个更改原因。混入的模块也只有一个改变的理由。如果班级发生变化,只有班级需要重新测试。如果模块被改变,只有模块需要重新测试。因此,SRP 是完整的。
该类现在有两个更改原因。如果更改了类,则类和模块都需要重新测试。如果模块被更改,则类和模块都需要重新测试。 Henge,SRP 被违反了。
使用 mixin 是否违反了Single Responsibility Principle,并最终导致系统更难维护?
【问题讨论】:
标签: design-patterns oop single-responsibility-principle mixins