Node.js уже предоставляет способ создания синглетонов.Модули CommonJS (то же самое относится и к другим модулям JS) оцениваются один раз при их первом импорте, поэтому экспортируемый объект остается единичным.Это естественное поведение для платформы, которое можно использовать как практическое правило.
Это поведение модулей Node.js может быть переопределено с помощью require
искажения кэша, например, decache
,Возможное использование - тестирование.Другой вариант использования - это взлом стороннего модуля NPM для , а не для создания синглтона, если это желаемое поведение, в противном случае потребуется его форк.
для сохранения фабрики в глобальной переменной
Использование глобалов в модульных средах, как правило, не рекомендуется.
позволяет сценарию верхнего уровня управлять созданием экземпляра singleton (и передавать его другим модулям)
Это шаблон внедрения зависимостей.Он может использоваться там, где это необходимо, но обеспечивает дополнительные издержки, если приложение не использует преимущества шаблона.