Встречается на собеседованиях • сегодня
Приведи пример принципа Dependency Inversion
Dependency Inversion Principle (DIP) гласит, что модули верхнего уровня не должны зависеть от модулей нижнего уровня — оба должны зависеть от абстракций.
Пример без DIP:
javascript
class MySQLDatabase {
save(data) {
console.log(`Saving ${data} to MySQL`);
}
}
class UserService {
constructor() {
this.database = new MySQLDatabase(); // Жёсткая зависимость
}
createUser(user) {
this.database.save(user);
}
}
text
**Пример с DIP:**
```javascript
class Database {
save(data) {
throw new Error('Method not implemented');
}
}
class MySQLDatabase extends Database {
save(data) {
console.log(`Saving ${data} to MySQL`);
}
}
class MongoDB extends Database {
save(data) {
console.log(`Saving ${data} to MongoDB`);
}
}
class UserService {
constructor(database) { // Зависимость через абстракцию
this.database = database;
}
createUser(user) {
this.database.save(user);
}
}
// Использование
const userService = new UserService(new MongoDB());
userService.createUser('John');Теперь UserService зависит от абстракции (Database), а не от конкретной реализации.

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