Заключение
Что важно запомнить о SRP
-
SRP – это про причины для изменения.
Класс должен меняться только по одной причине. Если у него несколько зон ответственности – у него несколько причин для изменения. -
Не путайте размер и ответственность.
Большой класс может следовать SRP, если вся его логика сфокусирована на одной задаче. И наоборот, маленький класс может нарушать SRP, если пытается делать несколько разных вещей. -
Главный признак нарушения – «смесь».
Если класс одновременно управляет данными, логирует, отправляет уведомления, работает с файлами – это классический «швейцарский нож». Выделяйте отдельные сущности. -
Инструменты SRP – делегирование и композиция.
Вместо того чтобы делать всё в одном классе, передавайте части работы другим классам. Используйте внедрение зависимостей. -
SRP помогает другим принципам SOLID.
Разделение ответственности облегчает соблюдение OCP (легче расширять) и DIP (проще внедрять абстракции).
Помните: идеальный класс – это класс, про который можно сказать одним предложением без союзов «и», «а также», «к тому же». Если у вас не получается – скорее всего, ответственность стоит разделить.
Теперь, когда вы разобрали пять реальных примеров и прошли чек-лист, вы готовы применять SRP в своих проектах. Переходите к следующему принципу – Open-Closed.