本来我想做DDD-NODE框架,但是发现不太可能,所以我分理出了能够简化开发的东西。
Repository 中能做的就是事件机制和一些约定规范。
Entity 能做的也是事件机制和一些约定规范。
Repository用node.js 开发完成了,下面给出代码,具体代码略。
function Repository(){}
var repo = Repository.prototype;
repo.on = function(id,event,listener){}
repo.once = function(id,event,listener){}
repo.emit = function(id,event){}
repo.removeListener = function(id,event,listener){}
repo.removeAllListener = function(id,event,listener){}
module.exports = Repository
|
下面是Entity代码
function Entity(){ this._repo = ... ; // Repository 实体对象 }
var e = Entity.prototype;
e.on = function(event,listener){ this._repo.on(this.id,event,listener); // 内部调用仓储的监听,一下略 }
e.once = function(event,listener){ // ... 略 }
e.emit = function(event){ // ... 略 }
e.removeListener = function(event,listener){ // ... 略 }
e.removeAllListener = function(event,listener){ // ... 略 }
|
使用方法如下:
比如我们需要监听一下 Info 的被更改的事件。
var id = ... // 第一种方法 infoRepo.on(id,'change',function(info){}) // 第二种方法,我们得到info的情况下 info.on('change',function(info){})
|
如果要监听全部的info中,只要有info改变就激发事件,那么只有一种方式。
infoRepo.on("*","change",function(info){})
|
而Repository内存优化和具体的实现这个就只能交给程序员了,当然也许不是这样,我再想一想。
[该贴被brighthas于2012-07-14 09:26修改过]