Dado que Mixins generalmente introduce un nuevo comportamiento en una clase, esto generalmente implica que una clase tendría más de un comportamiento.Single Responsibility y Mixins
Si una clase tiene una sola responsabilidad, esto se define como la clase que tiene solo un motivo para el cambio.
lo tanto, puedo ver esto desde dos perspectivas diferentes
La clase sólo tiene una razón para el cambio. El módulo mezclado también tiene solo una razón para el cambio. Si se cambia la clase, solo la clase necesitará una nueva prueba. Si se cambia el módulo, solo el módulo necesita una nueva prueba. Por lo tanto, SRP está intacto.
La clase ahora tiene dos motivos para el cambio. Si se cambia la clase, tanto la clase como el módulo necesitan una nueva prueba. Si se cambia el módulo, una vez más, tanto la clase como el módulo necesitan una nueva prueba. Henge, SRP es violado.
¿El uso de mixins violan la Single Responsibility Principle, y en última instancia como resultado un sistema más difícil de mantener?
Si necesita un comportamiento compartido entre clases no relacionadas, suena como un trabajo para otra clase por completo. Puede ocuparse del comportamiento necesario entre esas clases no relacionadas a través de una interfaz sin herencia o mixins. Esto se ocupa de SRP y DRY. – Tek