我在这个 Node.js 代码示例中使用了什么模式
What pattern am I using in this example of Node.js code?
'use strict';
var type = {};
type.image = require('./search.image.js');
type.video = require('./search.video.js');
type.social = require('./search.social.js')
function search (query, formatter, type) {
var objectToUse = type['type'];
objectToUse.setFormatter = formatter;
objectToUse.setQuery = query;
objectToUse.exec(function(response) {
return response;
});
}
我正在尝试为不同类型的媒体动态调用自制搜索引擎。它需要不同的解析器,并以通用格式返回数据。我很好奇我正在使用什么类型的模式。如果每个搜索引擎都使用通用代码,我将使用mixin。但是,我很好奇唤起每个模式的最佳模式是什么?而且,这最像哪种模式?
这似乎是策略模式。来自维基百科:
在计算机编程中,策略模式(也称为 策略模式(是一种软件设计模式,可实现 要在运行时选择的算法行为。
策略模式 定义一系列算法,封装每个算法,并使 该系列中的算法可互换。战略让 算法因使用它的客户端而异。[1] 战略是 有影响力的书籍《设计模式》中包含的模式之一 由Gamma等人推广了使用模式的概念 描述软件设计。
https://en.wikipedia.org/wiki/Strategy_pattern
据
我从这段代码中了解到,@James Gaunt 对策略的看法似乎是正确的。这可能是实现它的更好方法,您不需要不需要的代码:
'use strict';
function search (query, formatter, type) {
var objectToUse = require('./search.' + type + '.js');
objectToUse.setFormatter = formatter;
objectToUse.setQuery = query;
objectToUse.exec(function(response) {
return response;
});
}
相关文章:
- webpack开发模式和生产构建模式之间有什么区别
- 不确定我在PHP AJAX中使用的是什么开发模式
- 我应该使用什么正则表达式来验证数字模式
- 将JavaScript检测与MVC4显示模式集成的最佳方式是什么
- 谷歌跟踪代码管理器使用什么模式来观察 de 'dataLayer' 数组
- 什么是接口计算模式
- 什么'这是这个JavaScript模式的名称
- 这种设计模式什么时候才能打破
- JavaScript 模块模式和它的替代方案有什么区别
- 在Backbone.js'上设置属性的模式是什么;模型和视图
- 什么's在Observables(angular2)中操作数据的模式
- 我应该使用什么模式在 Node/JavaScript 中制作监听机器人
- 什么正则表达式模式将从包含的外部HTML文本中提取内部HTML
- 有什么方法可以放置一个触发器来在 CodeIgniter 的控制器函数中切换引导模式
- 使用 ES6 模块而不是显示模块模式的额外优势是什么?
- 引导程序 3 远程模式似乎什么都不做
- 什么是保留在挖空扩展中创建的自定义属性的好模式
- 在 Node.js 中表示状态的普遍接受模式是什么?
- 在vimperator中手动切换到“提示”模式的命令是什么
- 从嵌套数组中获取唯一元素的 JS 模式是什么