Что такое принципы SOLID

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

Ответ

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

  1. Single Responsibility (SRP) — класс должен иметь одну причину для изменения.
    // Плохо: UserManager обрабатывает и логику, и сохранение
    class UserManager {
        fun saveUser(user: User) { /*...*/ }
        fun validateUser(user: User) { /*...*/ }
    }
  1. Open-Closed (OCP) — классы открыты для расширения, но закрыты для модификации. Используйте интерфейсы/абстракции.

  2. Liskov Substitution (LSP) — подклассы должны заменять родительские классы без изменения поведения.

  3. Interface Segregation (ISP) — клиенты не должны зависеть от интерфейсов, которые они не используют.

  4. Dependency Inversion (DIP) — зависимости должны строиться на абстракциях, а не на конкретных реализациях.

Пример DIP:

interface Database {  
    fun save(data: String)  
}  

class UserRepository(private val db: Database) {  
    fun saveUser(user: User) = db.save(user.toString())  
}  

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