Что такое принцип единственной ответственности (SRP, Single Responsibility Principle) в ООП
Python
Senior
Без компании
Что такое принцип единственной ответственности (SRP, Single Responsibility Principle) в ООП
Ответы
Принцип единственной ответственности (SRP) — один из пяти SOLID принципов, который гласит: класс должен иметь только одну причину для изменения, то есть выполнять лишь одну задачу. Это упрощает поддержку, тестирование и уменьшает связанность кода.
**Пример нарушения SRP:**
```
class User:
def __init__(self, name, email):
self.name = name
self.email = email
def save_to_db(self):
# Логика сохранения в БД
pass
def send_email(self, message):
# Логика отправки email
pass
```
Здесь `User` отвечает и за хранение данных, и за работу с БД, и за отправку email.
**Исправленный вариант:**
```
class User:
def __init__(self, name, email):
self.name = name
self.email = email
class UserDB:
def save(self, user):
# Логика сохранения
pass
class EmailService:
def send(self, user, message):
# Логика отправки
pass
```
Теперь каждый класс выполняет одну задачу.