Изменения документа JS Внедрение зависимостей | JS Dependency injection
Редактировал(а) Alexandr Fokin 2023/01/06 17:11
<
>
отредактировано Alexandr Fokin
на 2020/07/12 19:22
на 2020/07/12 19:22
отредактировано Alexandr Fokin
на 2020/07/12 19:31
на 2020/07/12 19:31
Изменить комментарий:
К данной версии нет комментариев
Комментарий
-
Свойства страницы (2 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Название
-
... ... @@ -1,1 +1,1 @@ 1 -Внедрение зависимостей | Dependency injection 1 +JS Внедрение зависимостей | JS Dependency injection - Содержимое
-
... ... @@ -1,0 +1,26 @@ 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 + 19 +Схожим образом можно интегрироваться с фреймворком типа React: 20 +Создать BaseReactComponent, от которого будут наследоваться все компоненты. 21 +Базовый BaseReactComponent будет создавать экземпляр BaseClass, который выполнит иницилизацию зависимостей, а после полученные зависимости можно скопировать из BaseClass в BaseReactComponent. 22 +При этом BaseReactComponent пробрасывает возможности конструктора BaseClass, позволяя передать массив необходимых зависимостей. 23 + 24 + 25 + 26 +