小编Ben*_*ten的帖子

在领域驱动设计中是否可以调用另一个有界上下文的应用程序服务?

我正在阅读 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)

rest integration domain-driven-design

3
推荐指数
1
解决办法
2019
查看次数

标签 统计

domain-driven-design ×1

integration ×1

rest ×1