SOLID - I
Принцип инверсии зависимостей (Dependency Inversion Principle)
Этот принцип гласит, что классы должны зависеть от абстракций, а не от конкретных реализаций. Это позволяет сделать код более гибким и легким для изменения.
// Плохой пример: зависимость от конкретной реализации
class Database {
fun saveData(data: String) {
// Реализация сохранения данных в базе данных
}
}
class DataManager {
private val database = Database()
fun saveData(data: String) {
database.saveData(data)
}
}
// Хороший пример: использование интерфейса и инверсии зависимостей
interface Database {
fun saveData(data: String)
}
class RealDatabase : Database {
override fun saveData(data: String) {
// Реализация сохранения данных в базе данных
}
}
class DataManager(private val database: Database) {
fun saveData(data: String) {
database.saveData(data)
}
}