Принцип единственной ответственности (Single Responsibility Principle, SRP) гласит, что у каждого модуля, класса или функции должна быть только одна причина для изменения. Иными словами, каждый программный элемент должен выполнять лишь одну логически связную задачу или функцию.
Преимущества следования SRP:
Пример нарушения SRP:
Класс User управляет данными пользователя (имя, email, пароль), а также отправляет электронные письма и сохраняет данные в базу.
python
Этот класс нарушает SRP, так как у него три причины для изменения: изменение структуры данных пользователя, изменение логики сохранения в базу данных и изменение логики отправки электронных писем.
Пример следования SRP:
Разделение функциональности на отдельные классы.
python
В этом случае каждый класс имеет только одну ответственность, что делает систему более гибкой и простой в поддержке. User отвечает за данные пользователя, UserRepository — за сохранение в базу, а EmailService — за отправку email.