关于jdon DCI RoleAssigner的问题 13-09-09 supernavy 下面的代码来自com.jdon.domain.dci.RoleAssigner.javapublic Object assign(Object datamodel, Object role) { Class[] inters = role.getClass().getInterfaces(); if (inters == null || inters.length == 0) { Debug.logError( "[JdonFramework] role:" + role.getClass() + " should implements a interface when be assigned to data:" + datamodel.getClass(), module); return null; } if (datamodel.getClass().isAnnotationPresent(Model.class)) assignDomainEvents(datamodel); if (role.getClass().isAnnotationPresent(Introduce.class)) { role = modelAdvisor.createProxy(role); } return role; }这里的datamodel 和 role之间并没有建立任何的绑定。按照DCI的思想,返回的应该是一个混合了数据与行为的对象,但是这里返回的确实一个没有任何数据的对象,这怎么理解呢?[该贴被admin于2013-09-09 16:49修改过]
banq 2013-09-09 16:50 关键在这一句:if (datamodel.getClass().isAnnotationPresent(Model.class)) assignDomainEvents(datamodel); 将事件交互行为注入了datamodel,至于为何返回role,这个方法经过重构,可能是考虑兼容性等问题。