Как Single Responsibility упрощает жизнь разработчику

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

Ответ

Single Responsibility Principle (SRP) упрощает разработку, делая код более понятным, тестируемым и поддерживаемым.

Преимущества:

  • Читаемость: Классы/методы делают одну вещь, их легче понять.
  • Тестируемость: Меньше зависимостей — проще мокировать и проверять.
  • Гибкость: Изменения в одной части системы не ломают другие.

Пример:

// Плохо: класс делает слишком много
class UserManager {
    fun saveUser(user: User) { /* сохранение в БД */ }
    fun sendEmail(user: User) { /* отправка email */ }
}

// Хорошо: разделение ответственностей
class UserRepository {
    fun saveUser(user: User) { /* только сохранение */ }
}

class EmailService {
    fun sendEmail(user: User) { /* только отправка */ }
}

SRP уменьшает coupling и упрощает рефакторинг.