Что такое принцип единственной ответственности (SRP, Single Responsibility Principle) в ООП

«Что такое принцип единственной ответственности (SRP, Single Responsibility Principle) в ООП» — вопрос из категории ООП, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Принцип единственной ответственности (SRP) гласит, что класс должен иметь только одну причину для изменения, т.е. выполнять лишь одну задачу. Это упрощает поддержку кода, уменьшает связность и облегчает тестирование.

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

class User {
    fun saveToDb(user: User) { /*...*/ }
    fun sendEmail(user: User) { /*...*/ }
}

Правильный вариант:

class UserRepository {
    fun saveToDb(user: User) { /*...*/ }
}

class EmailService {
    fun sendEmail(user: User) { /*...*/ }
}

Ключевые преимущества:

  • Изменение логики работы с БД не затрагивает отправку email
  • Каждый класс проще тестировать изолированно
  • Код становится более читаемым и понятным

Видео-ответы