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

Должен ли клиентский код зависеть от деталей

Клиентский код не должен зависеть от деталей реализации. Это принцип инверсии зависимостей (DIP) и инкапсуляции. Вместо этого клиент должен зависеть от абстракций (интерфейсов или абстрактных классов). Это упрощает поддержку, тестирование и модификацию кода.

Пример:

java
// Плохо: клиент зависит от конкретной реализации
class Client {
    private Database db = new MySQLDatabase(); // жесткая привязка
}

// Хорошо: клиент зависит от абстракции
class Client {
    private Database db; // интерфейс
    
    public Client(Database db) { // DI
        this.db = db;
    }
}

interface Database { /* методы */ }
class MySQLDatabase implements Database {}
class PostgreSQLDatabase implements Database {}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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