Встречается на собеседованиях • сегодня

Что значит буква S в SOLID

SOLID — это принципы объектно-ориентированного проектирования. Буква S означает Single Responsibility Principle (Принцип единственной ответственности).

Суть: каждый класс (или модуль) должен иметь только одну причину для изменения, т.е. выполнять одну конкретную задачу.

Пример нарушения:

python
class User:
    def __init__(self, name, email):
        self.name = name
        self.email = email
text
def save_to_db(self):
    # Сохранение в БД
    pass

def send_email(self, message):
    # Отправка email
    pass
text
Здесь `User` отвечает и за данные пользователя, и за работу с БД, и за отправку писем.  

**Исправленный вариант:**  
```python
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

Теперь каждый класс решает свою задачу.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы