Mixins은 일반적으로 클래스에 새로운 동작을 도입한다는 것을 감안할 때 일반적으로 클래스에 두 가지 이상의 동작이 있음을 의미합니다.단일 책임 및 믹스
클래스에 단일 책임이있는 경우이 클래스는 변경 이유가 하나 뿐인 클래스로 정의됩니다.
그래서, 두 개의 서로 다른 관점
클래스는 변화를위한 하나의 이유가에서 이것을 볼 수 있습니다. 혼합 된 모듈에도 변경 이유가 하나뿐입니다. 클래스가 변경된 경우에만 클래스를 다시 테스트해야합니다. 모듈이 변경된 경우에만 모듈을 다시 테스트해야합니다. 따라서 SRP는 손상되지 않습니다.
클래스에는 이제 두 가지 변경 이유가 있습니다. 클래스가 변경되면 클래스와 모듈 모두 다시 테스트해야합니다. 모듈이 변경되면 클래스와 모듈 모두 다시 테스트해야합니다. Henge, SRP가 위반되었습니다.
은 유지 mixin의 사용은 Single Responsibility Principle 위반, 궁극적으로 더 열심히 유지하기 위해 시스템을 초래할합니까?
관련없는 클래스간에 공유 동작이 필요한 경우 다른 클래스의 작업처럼 들립니다. 상속 또는 혼합이없는 인터페이스를 통해 관련없는 클래스간에 필요한 동작을 처리 할 수 있습니다. 이것은 SRP와 DRY를 처리합니다. – Tek