NodeJS: избегая круговой зависимости во взаимозависимых модулях - PullRequest
0 голосов
/ 17 марта 2020

Краткая форма:

Что означает nodeJS для настройки взаимных зависимостей между модулями без создания циклических ссылок?

Подробности:

В nodeJS, предположим, У меня есть два класса объектов: Thing и ThingController.

ThingController отвечает за создание и поддержку библиотеки объектов Thing:

\\file: thing-controller.js
"use strict";

var Thing = require('./thing');

var ThingManager = function() {
  this._things = new Map();
};

// ...etc...

module.exports = ThingManager;

И модуль Thing может выглядеть следующим образом:

\\file: thing.js
"use strict";

var Thing = function(id, name) {
  this.id = id;
  this.name = title;
  this.siblings = undefined;
}

// ...etc...

module.exports = Thing;

Все это прекрасно работает, если Thing никогда не нужно ссылаться на ThingManager.

Но что, если я захочу добавить Thing.prototype.findSiblings или какую-то такую ​​функцию, которая требует вызова ThingManager?

Что означает nodeJS для настройки взаимных зависимостей без создания циклических ссылок? Это вариант использования для внедрения зависимости, и если да, то каков одобренный подход?

...