Ответ
SOLID — это пять принципов объектно-ориентированного проектирования, улучшающих читаемость, гибкость и поддерживаемость кода.
- Single Responsibility (SRP) — класс должен иметь одну причину для изменения.
// Плохо: UserManager обрабатывает и логику, и сохранение
class UserManager {
fun saveUser(user: User) { /*...*/ }
fun validateUser(user: User) { /*...*/ }
}
-
Open-Closed (OCP) — классы открыты для расширения, но закрыты для модификации. Используйте интерфейсы/абстракции.
-
Liskov Substitution (LSP) — подклассы должны заменять родительские классы без изменения поведения.
-
Interface Segregation (ISP) — клиенты не должны зависеть от интерфейсов, которые они не используют.
-
Dependency Inversion (DIP) — зависимости должны строиться на абстракциях, а не на конкретных реализациях.
Пример DIP:
interface Database {
fun save(data: String)
}
class UserRepository(private val db: Database) {
fun saveUser(user: User) = db.save(user.toString())
} Видео-ответы
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶
▶