对于一个模拟为:
的想象层次结构(defn map
([f coll]
(lazy-seq
(when-let [s (seq coll)]
(if (chunked-seq? s)
(let [c (chunk-first s)
size (int (count c))
b (chunk-buffer size)]
(dotimes [i size]
(chunk-append b (f (.nth c i))))
(chunk-cons (chunk b) (map f (chunk-rest s))))
(cons (f (first s)) (map f (rest s))))))))
或许层次结构可以更简单地实现为:
Tenancy
TenancyUser
TenancyUserAccounts
TenancyUserAccount
TenancyUserAccountItems
TenancyUserAccountAccountItem
我如何在代码中将其表示为Akka.net中Actors的层次结构?
我来自DDD背景,我确信一旦我理解它,这是一个直截了当的飞跃。实际上,要问这样一个根本简单的问题感觉有点尴尬但是你去了。新的闪亮和所有。
谢谢! R上。
答案 0 :(得分:6)
很难说,因为DDD需要至少某种程度的专业知识而不是域名,这是建模的。通常,您通常以1-1的方式将聚合根实例映射到actor,即假设您的var orgExpandNode = $.fn.jqGrid.expandNode,
orgCollapseNode = $.fn.jqGrid.collapseNode;
$.jgrid.extend({
expandNode : function(rc) {
if(this.getNodeChildren(rc).length===0){
$.ajax({
url : "http://localhost:8080/xx/",
success : function(data) {
var result = data;
for(var i=0;i<result.length;i++){
grid.addChildNode(result[i].id,result[i].parent,result[i]);
}
result=[];
}
});
}
return orgExpandNode.call(this, rc);
},
});
是聚合根,它恰好由当时的一个有状态的actor扮演。它下面的所有实体都不是演员,只是普通的对象。
将每个域实体映射到单独的actor是没有意义的,因为相应于DDD原则,所有对依赖于聚合的实体的操作都应该通过聚合根本身来完成。