Jdon框架对DCI实现的疑惑。
从JdonFramework.doc文档中看到如下描述:
我们创建一个上下文Context, 在其中通过RoleAssigner将将角色接口注入到领域对象中中。
角色分配场景下
数据模型MyModel //没有@Inject字段
RoleAssigner可以手工对任何一个模型对象从外部进行事件注入或角色分配。
MyModel myModel = new MyModel();
RepositoryRoleIF r = (RepositoryRoleIF) roleAssigner.assign(myModel, new RepositoryRole());
r.save(myModel);
----
看了RoleAssigner的源码之后,
发现assign这个方法,只做了两件事情:
1.assignDomainEvents(datamodel);
2.role = modelAdvisor.createProxy(role);
1->对有@Inject字段的datamodel进行实现类注入。(对于没有@Inject字段的datamodel则什么都没做!)
2->对Role类进行代理封装(实现AOP)。
----
那从源码的角度来看,角色对象和数据模型并没有发生什么关系。
并没有创建出一个Mix了数据模型和当前角色行为的类。
那【通过RoleAssigner从外部进行角色分配】,这句话应该怎么理解呢?