Что такое SOLID

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

Ответ

SOLID — это набор принципов объектно-ориентированного проектирования, улучшающих читаемость, гибкость и поддерживаемость кода.

  1. SRP (Single Responsibility) — класс должен иметь одну причину для изменения.
  2. OCP (Open-Closed) — классы открыты для расширения, но закрыты для модификации.
  3. LSP (Liskov Substitution) — подклассы должны заменять родительские классы без ошибок.
  4. ISP (Interface Segregation) — лучше много узких интерфейсов, чем один универсальный.
  5. DIP (Dependency Inversion) — зависимости должны строиться на абстракциях, а не на конкретных классах.

Пример ISP:

// Плохо: один интерфейс с избыточными методами  
interface Animal {  
    fun eat()  
    fun fly() // Не все животные летают!  
}  

// Хорошо: разделение  
interface Eatable { fun eat() }  
interface Flyable { fun fly() }  

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