webprogr.ru Новости

RSS

{{toodo.preview}}

...
{{toodo.name}}

{{toodo.preview}}

далее..

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

смотреть..

toodo.name

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

перейти...

{{toodo.preview}}

...
{{toodo.name}}

{{toodo.preview}}

далее..

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

смотреть..

toodo.name

{{toodo.preview}}

{{toodo.name}}

{{toodo.preview}}

перейти...


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

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