在不创建循环引用的情况下在模块之间建立相互依赖关系的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惯用法是什么?这是依赖注入的用例吗?如果是,批准的方法是什么?