我正在阅读 Vaughn Vernon 的《实现领域驱动设计》。在其中一个示例中,他展示了在协作有界上下文中创建的论坛。在创建之前,一个 Creator 值对象被实例化。Creator 对象的信息来自不同的有界上下文。向 REST API 发出 HTTP 请求以从身份和访问有界上下文中检索用户。然后将其转换为 Creator 对象。
private Forum startNewForum(
Tenant aTenant,
String aCreatorId,
String aModeratorId,
String aSubject,
String aDescription,
String anExclusiveOwner) {
Creator creator =
this.collaboratorService().creatorFrom(aTenant, aCreatorId);
Moderator moderator =
this.collaboratorService().moderatorFrom(aTenant, aModeratorId);
Forum newForum =
new Forum(
aTenant,
this.forumRepository().nextIdentity(),
creator,
moderator,
aSubject,
aDescription,
anExclusiveOwner);
this.forumRepository().save(newForum);
return newForum;
}
Run Code Online (Sandbox Code Playgroud)
UserInRoleAdapter 在另一个有界上下文中调用 REST API,并将其转换为 Creator 对象。
public class TranslatingCollaboratorService implements CollaboratorService {
private UserInRoleAdapter userInRoleAdapter;
...
@Override
public Creator creatorFrom(Tenant aTenant, String anIdentity) { …Run Code Online (Sandbox Code Playgroud)