Задать вопрос
@Mr-Governor
Губернирую

Какое преимущество при использовании внедрения зависимости?

Всем привет.
Изучая NestJS, тему: Провайдеры.
Прочитал что провайдер - класс который (благодаря декоратору @Injectable) можно внедрять как зависимость в другие классы.

То есть, вместо этого:
export class Service1 {
    private prop: PropType;

    constructor() {
        this.prop = new PropType();
    }
}


Получаем такой код:
export class Service2 {
    constructor(private prop: PropType) {}
}


Но вот только я не понимаю в чем преимущество такого подхода, ведь экономится одна строчка, или я чего-то не понимаю и есть еще преимущества?
  • Вопрос задан
  • 87 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя Джанго Всемогущий К ответам на вопрос (5)
Представь, что для создания экземпляра класса propType тебе требуется 50 мб оперативной памяти. И ты будешь делать это каждый раз, когда тебе понадобится этот класс в каком либо сервисе. При использовании DI, инжектор (контейнер зависимостей) сделает это один раз, и в последующих вызовах в различных службах ты будешь получать в конструкторе уже готовый и единственный объект экземпляра класса propType. Надеюсь, объяснился понятно.
Ответ написан
Комментировать