我在思考如何實現依賴項注入在使用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