Версия 3.1 от Alexandr Fokin на 2020/07/12 19:29

Последние авторы
1
2 **Внедрение зависимостей в JavaScript.**
3
4 Для внедрения зависимостей в JS можно использовать следующую схему.
5
6 1) Создаем класс ServieLocator. В нем будут содержаться все зависимости и метод для получения зависимости.
7 2) Создаем BaseClass, который:
8 Содержит статичный экземпляр ServieLocator.
9 В конструкторе принимает список зависимостей.
10 При выполнении конструктора запрашивает все необходимые зависимоти и бросате ошибку, если зависимость не найдена.
11
12
13 Вопрос абстракции.
14 Нет возможности определить интерфейс.
15 Как вариант определять класс без логики. Методы могут быть пустими и бросать ошибку: метод не реализован. Потомок либо переопределит метод либо получит ошибку при вызове.
16
17
18 Схожим образом можно интегрироваться с фреймворком типа React:
19 Создать BaseReactComponent, от которого будут наследоваться все компоненты.
20 Базовый BaseReactComponent будет создавать экземпляр BaseClass, который выполнит иницилизацию зависимостей, а после полученные зависимости можно скопировать из BaseClass в BaseReactComponent.
21 При этом BaseReactComponent пробрасывает возможности конструктора BaseClass, позволяя передать массив необходимых зависимостей.
22
23
24