Что такое принципы SOLID в контексте Android разработки

«Что такое принципы SOLID в контексте Android разработки» — вопрос из категории Архитектура, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

SOLID — это 5 принципов объектно-ориентированного дизайна, помогающих создавать поддерживаемый и масштабируемый код:

  1. Single Responsibility (SRP) - класс должен решать только одну задачу. Например, UserRepository только загружает данные, а UserViewModel обрабатывает логику.

  2. Open-Closed (OCP) - классы открыты для расширения, но закрыты для изменений. Используем интерфейсы:

interface Logger {
    fun log(message: String)
}
  1. Liskov Substitution (LSP) - наследники должны заменять родителей. Если Square наследует Rectangle, его поведение не должно ломать логику родителя.

  2. Interface Segregation (ISP) - много специализированных интерфейсов лучше одного общего. Разделяем OnClickListner и OnLongClickListener.

  3. Dependency Inversion (DIP) - зависимости от абстракций, а не реализаций. Внедряем Repository через конструктор:

class ViewModel(private val repo: Repository)

В Android это особенно важно для архитектуры (MVVM, Clean Architecture) и тестируемости кода.