【发布时间】:2016-06-06 07:15:32
【问题描述】:
我正在尝试找到如何创建多个实例并根据Module 模式配置我的模块的最佳方法。
目前我有
var Logger = (function () {
// Private members
var _settings = {
json: JSON,
output: console
};
// Private methods
var _log = function (info) {
_settings.output.log(info);
};
var _dump = function (info) {
_log(_settings.json.stringify(info));
};
// Change default settings
var changeSettings = function (settingsArgs) {
if (settingsArgs !== undefined) {
if (settingsArgs.json !== undefined) {
_settings.json = settingsArgs.json;
}
if (settingsArgs.output !== undefined) {
_settings.output = settingsArgs.output;
}
}
};
return {
init: changeSettings,
log: _log,
dump: _dump
};
})();
我对这种模式有几个问题。
为模块提供配置的最佳方式是什么,我只是为私有设置字段创建了setter,但我觉得这不是实现它的最佳方式。请提出正确的方法。
如何创建我的模块的多个实例。据我了解,模块通常用于封装全局对象和逻辑(如单例),所以大多数时候只有一个模块实例存在,但我需要有多个实例。在我的情况下,这可能很有用,例如,我可以创建一个记录器
ConsoleLogger另一个将是AlertLogger不同之处在于输出,但现在我只能有一个实例。
请建议正确的方法,我已经阅读了很多文章,但还没有找到问题的答案。谢谢
【问题讨论】:
标签: javascript design-patterns module