Встречается на собеседованиях • сегодня
Пользуешься ли принципом инверсии зависимостей (Dependency Inversion Principle)
DIP — один из SOLID-принципов, гласящий, что модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба должны зависеть от абстракций.
Пример без DIP:
java
class MySQLDatabase {
public void saveData(String data) {
// сохранение в MySQL
}
}
class Service {
private MySQLDatabase db = new MySQLDatabase();
void process() {
db.saveData("data");
}
}
text
С DIP:
```java
interface Database {
void saveData(String data);
}
class MySQLDatabase implements Database {
@Override
public void saveData(String data) {
// сохранение в MySQL
}
}
class Service {
private Database db;
Service(Database db) {
this.db = db; // инъекция зависимости
}
void process() {
db.saveData("data");
}
}Преимущества:
- Уменьшение связанности кода
- Легкость тестирования (можно подменить реализацию)
- Гибкость при изменении БД

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