DDD实体我的一点想法


DDD的实体类确实应该驻守在内存中,但实际上我们会发现内存相对还是昂贵的,那么我们可以让实体类的一张皮放在内存中,而大的字段可以懒加载。

我用javascript 代码做一个说明。



function Entity(){}

function Info(id){} // Info继承Entity

var info = ...;

function cb1(err,content){ console.log(content) }
function cb2(err){ }

// 得到Info的content字段
info.content(cb1)

// 改变Info的content字段 , ‘cccc’ 是改变的内容
info.content('ccccc',cb2)

// info对象会常驻在内存中,他的某些字段可以选择懒加载,用异步回调的方式操作和查询。


// 如果info住在内存中,那么我们就可以监听info了,例如如下代码:
info.addListener('change',function(_info){});
// 监听 info 改变的事件。

非常好,我们想到一块去了,可以使用JdonFramework的Domain Events实现异步懒加载字段。



public int getMessageCount(DomainEvents domainEvents) {
if (messageCount == -1) {
if (messageCountAsyncResult == null) {
messageCountAsyncResult = domainEvents.computeCount(account.getUserIdLong());
} else {
messageCount = (Integer)
messageCountAsyncResult.getEventResult();
}
}
return messageCount;
}