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

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

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

  • Вместо жёстких зависимостей от конкретных классов — зависим от интерфейсов.

  • Это облегчает тестирование, замену реализаций и расширение системы.

//  Нарушение — напрямую зависит от конкретного класса
class Keyboard {}
class Computer {
    private Keyboard keyboard = new Keyboard();
}

//  Правильно — зависимость от абстракции
interface InputDevice { void input(); }

class Keyboard implements InputDevice {
    public void input() { System.out.println("Набор текста"); }
}

class Computer {
    private final InputDevice device;

    public Computer(InputDevice device) {
        this.device = device;
    }
}

Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)   Короткая ссылка:

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

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

  • Вместо жёстких зависимостей от конкретных классов — зависим от интерфейсов.

  • Это облегчает тестирование, замену реализаций и расширение системы.

//  Нарушение — напрямую зависит от конкретного класса
class Keyboard {}
class Computer {
    private Keyboard keyboard = new Keyboard();
}

//  Правильно — зависимость от абстракции
interface InputDevice { void input(); }

class Keyboard implements InputDevice {
    public void input() { System.out.println("Набор текста"); }
}

class Computer {
    private final InputDevice device;

    public Computer(InputDevice device) {
        this.device = device;
    }
}

https://webprogr.ru/~MKXQ8
Короткая ссылка на новость:https://webprogr.ru/~MKXQ8


Последние новости

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

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

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

  • Вместо жёстких зависимостей от конкретных классов — зависим от интерфейсов.

  • Это облегчает тестирование, замену реализаций и расширение системы.

//  Нарушение — напрямую зависит от конкретного класса
class Keyboard {}
class Computer {
    private Keyboard keyboard = new Keyboard();
}

//  Правильно — зависимость от абстракции
interface InputDevice { void input(); }

class Keyboard implements InputDevice {
    public void input() { System.out.println("Набор текста"); }
}

class Computer {
    private final InputDevice device;

    public Computer(InputDevice device) {
        this.device = device;
    }
}

Рейтинг@Mail.ru