Встречается на собеседованиях • сегодня

Какой последний принцип SOLID

Принцип инверсии зависимостей (Dependency Inversion Principle, DIP).

Он гласит:

  1. Модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
  2. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Пример на TypeScript:

typescript
// Плохо: класс UserService зависит от конкретной базы данных
class MySQLDatabase {
  save(data: string) { /* ... */ }
}

class UserService {
private db = new MySQLDatabase(); // Жёсткая зависимость
saveUser(data: string) {
this.db.save(data);
}
}

// Хорошо: зависимость от абстракции (интерфейса)
interface Database {
save(data: string): void;
}

class UserService {
constructor(private db: Database) {} // Внедрение зависимости
saveUser(data: string) {
this.db.save(data);
}
}

// Теперь можно подменить реализацию:
const userService = new UserService(new MySQLDatabase());
// Или даже на другую БД без изменения UserService

text

Это упрощает тестирование и расширяемость кода.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы