将我的项目拆分为许多OO类后,我必须通过多个构造函数传递对Model
实例(包含猫鼬模型和模式)的引用。
在model.js
模块中创建 Model
类的实例,然后在我需要它的所有地方都需要这个model.js
模块,这是否是一种不好的做法?
像这样:
Model = function () { ... }
module.exports = new Model();
这将依赖于 Node 的模块缓存来允许在文件之间共享相同的Model
实例,例如具有全局单例。
还是应该通过构造函数显式传递依赖项?
不,这不是一个坏做法。事实上,很多人都是这样做的。
我会
说是的,这是一种不好的做法,很容易被滥用。它确保了紧密耦合的模块,这意味着如果你离开猫鼬,你将不得不修改接触数据库的每个文件。这是不好的,原因与滥用单例是不好的相同原因。
仅仅因为许多人以特定的方式做某事绝不表明这是一件好事。