首页 > 解决方案 > 何时使用 require 以及何时通过参数提供依赖项

问题描述

我一直想知道在 node.js 代码中注入依赖项的首选方式是什么。

我一直在做一个没有依赖注入的项目。这就是为什么我有两种方法在我的代码中提供依赖项的原因:

通过构造函数/函数参数 - 这具有爆炸函数中参数数量的缺点,因为我将参数从程序的较高级别传递到较低级别,

function createListener(queue) {
    return function listen() {
        while (true) {
            const messages = queue.receiveMessages();
            ...
        }
    };
}

使用 require() - 这相当于硬编码那些依赖关系,如果更难模拟和测试。

const queue = require('./queue');

function createListener() {
    return function listen() {
        while (true) {
            const messages = queue.receiveMessages();
            ...
        }
    };
}

我一直试图在它们之间找到一个甜蜜点。当提供一个复杂机制的依赖项时,我倾向于注入它,在处理我使用的值或不太重要的机制时需要。

那样行吗?什么是更好的方法?

标签: javascriptnode.jsdesign-patternscoding-style

解决方案


推荐阅读