我在思考如何实现依赖项注入在使用es6构建的快速应用程序中。 实际的项目看起来是这样的:设计模式:使用es6导出常量进行依赖项注入
/controllers/myController.controller.js
import express from 'express';
import MyModel from '/models/myModel.model.js';
class MyController{
constructor(){
this.router = express.Router();
}
getAll(){
var modelInstance = new MyModel();
this.router.get('/', (req , res) => {
res.send(modelInstance.getData());
});
}
}
/models/myModel.model.js
export class MyModel{
constructor(){
}
getData(){
return 'it\'s working';
}
}
但我认为,一个更好的主意是导出这样的类的实例:
个/models/myModel.model.js
class MyModel{
constructor(){
}
getData(){
return 'it\'s working';
}
}
//export a new instance
export const ModelInstance = new MyModel();
然后修改这样
/controllers/myController.controller.js控制器
import express from 'express';
//inject a new instance of the model
import {modelInstance} from '/models/myModel.model.js';
class MyController{
constructor(){
this.router = express.Router();
}
getAll(){
this.router.get('/', (req , res) => {
res.send(modelInstance.getData());
});
}
}
我不知道如果我的想法是正确的,但我认为这个例子对这种模式是一个很好的应用。
您对此有何看法?
你发明了一个单身人士。 – zerkms
@zerkms不是工厂? –
'export const ModelInstance = new MyModel();'---它不是,您创建一个实例并提供对其的全局访问。 – zerkms