0

在将我的项目拆分为许多 OO 类后,我必须Model通过多个构造函数传递对我的实例(包含 Mongoose 模型和模式)的引用。

Model在模块内创建类的实例model.js然后model.js在我需要的任何地方都需要这个模块是不好的做法吗?

像这样的东西:

Model = function () { ... }

module.exports = new Model();

这将依赖 Node 的模块缓存来允许Model在文件之间共享相同的实例,就像拥有一个全局单例一样。

或者我应该通过构造函数显式传递依赖项?

4

2 回答 2

1

不,这不是一个坏习惯。事实上,很多人都是这样做的。

于 2012-07-01T14:34:50.177 回答
1

我会说是的,这是一种不好的做法,很容易被滥用。它确保了紧密耦合的模块,这意味着如果您离开 mongoose,您将不得不修改每个涉及数据库的文件。出于同样的原因,滥用单例是不好的,这也是不好的。

仅仅因为许多人以特定的方式做某事,并不意味着这是一件好事。

于 2012-07-04T10:06:28.723 回答