Mon*_*ong 6 oop design-patterns single-responsibility-principle mixins
鉴于Mixins 通常会在类中引入新行为,这通常意味着类会有多个行为.
如果一个类只有一个责任,则将其定义为只有一个改变原因的类.
所以,我可以从两个不同的角度看待这一点
这个班只有一个改变的理由.混合的模块也只有一个变化的原因.如果更改了类,则只需要重新测试类.如果更改模块,则只需要重新测试模块.因此,SRP是完整的.
该班现在有两个改变的原因.如果更改了类,则类和模块都需要重新测试.如果更改了模块,则类和模块都需要重新测试.Henge,SRP受到侵犯.
mixin的使用是否违反了单一责任原则,最终导致系统难以维护?
小智 1
当您需要在不相关的类之间共享行为(有时您需要)时,本质上有以下三种选择:
至于测试,我认为一个“好的”mixin,就像一个好的常规方法一样,应该足够松散地耦合,以便它和使用它的类可以独立使用。