Что такое Single Responsibility Principle
Python
Senior
Без компании
Что такое Single Responsibility Principle
Ответы
Принцип Single Responsibility (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):
# Логика отправки email
pass
```
Теперь каждый класс выполняет одну задачу, и изменения в одной области не затрагивают другие.