用CQRS的方式编程

12-07-17 brighthas
这里采用node.js的环境编程,采用CQRS方式编程。

首先建立“刷新”Command

function ProductRefreshCommand(productId){
	this.productId  =  productId;
}
<p>

然后建立 Command handle. 是和Command一一对应的。

function ProductRefreshCommandHandle(command){
				this.command = command;
}

var handle = ProductRefreshCommandHandle.prototype;

handle.handle = function(){
	global.repos.productRepo.findById(this.command.productId,function(product){
		 product.refresh();								
	});
}
<p>

之后,我们建立Product.

function Product(id){
	this._num = 0;	
	this._id = id;
}

var product = Product.prototype;

product.__defineGetter__('num',function(){
	return this._num;						
});
product.__defineGetter__('id',function(){
	return this._id;						
});

product.refresh = function(){
	++this._num;
	global.eventbus.publish(new global.events.ProductRefreshEvent(this))	
}
<p>

然后,我们建立刷新事件

function ProductRefreshEvent(product){
	this.product = product;	
}
<p>

最后,我们建立事件处理器

function ProductRefreshEventHandle(event){
	event.product.save();
}
<p>

先写这些,有些没有主题,希望各位一起探讨。

         

猜你喜欢