1
我正在学习设计模式,我最喜欢的是工厂模式。但是当我挖掘其他人编写的代码时,我并不认为这种模式经常发生,特别是在较新的堆栈上。node.js中的工厂模式(快速)
例如本文http://dealwithjs.io/design-patterns-the-factory-pattern-in-javascript/样品看起来像这样的:
function SimpleFactory(name) {
var factoryName = name;
var getSalesEmployee = function(firstName, lastName) {
return {
firstName: firstName,
lastName: lastName,
comission: 0,
salary: 100,
projects: [],
type: 'sales'
};
}
var getEngineerEmployee = function(firstName, lastName) {
return {
firstName: firstName,
lastName: lastName,
salary: 150,
manager: '',
technologies: [],
projects: [],
type: 'engineer'
}
}
var getName = function() {
return factoryName;
}
return {
getSales: getSalesEmployee,
getEngineer: getEngineerEmployee,
getName: getName
}
}
module.exports = {
getInstance: SimpleFactory
}
上面的代码对我来说是控制器,但通常我只是把它写这样
modue.exports = {
funcA =() => {}
funcB =() => {}
}
,并在另一个文件我可以使用something.funcA,为什么我仍然需要在这里使用工厂?我认为节点的共同点解决了泄漏问题。
这实际上并不需要。你可以像'module.exports = SimpleFactory'这样的东西,然后当你需要时'var SimpleFactory = require('./ factoryModule'); SimpleFactory.getEngineerEmployee()' – nicowernli