Никогда не должно быть более одной причины для изменения класса
Это немного отличается от традиционного определения «должен делать только одно», и мне это нравится, потому что оно заставляет вас изменить то, как вы думаете о своем классе. Вместо того, чтобы думать о том, «это делает что-то одно?», вы вместо этого думаете о том, что может измениться и как эти изменения повлияют на ваш класс. Так, например, если база данных изменится, нужно ли изменить ваш класс? Что делать, если устройство вывода изменилось (например, экран, мобильное устройство или принтер)? Если ваш класс нуждается в изменении из-за изменений во многих других направлениях, то это признак того, что у вашего класса слишком много обязанностей.
В связанной статье дядя Боб заключает:
SRP — один из самых простых принципов и один из самых сложных для понимания. Объединение обязанностей — это то, что мы делаем естественно. Нахождение и разделение этих ответственность друг от друга — это большая часть того, чем на самом деле является проектирование программного обеспечения.
Прикрепляю к посту несколько видео по теме: