理论总是绕口的,特别对我这种懒人。只能说我懒,不能说理论无用。
那么标题“多个domain黑匣论”,简单的来说就是让领域层本身可以分为数个领域,下面以jsdm代码为例(记住:jsdm是nodejs框架还不成熟,能掌控的眼下只能是寡人,呵呵,推荐大家用banq的java框架,以下不要纠结代码本身,而是探讨思想):
// 系统可能很庞大,实体也可能很多,那么这时候需要划分几个domain。 // 每个domain 具备完整的CQRS内的部件,比如 aggre / command handle / event hande var domain1 = require("jsdm")(); var domain2 = require("jsdm")(); var domain3 = require("jsdm")();
..... // 应用层调用domain domain1.exec("转账" ... );
...... // 3个领域之间用事件关联和交互
domain3.on("xxx event",function(){ domain1.exec("发货" .... ) })
domain1.on("xxx event",function(){ domain2.exec("xxx" .... ) })
|
领域domain 之间只能通过 domain.exec 调用内部而无法得知domain内部任何细节信息,你只能exec 执行 或 on 监听 领域层,domain永远是个黑匣。