有两个实体:邀请和组

一个用户可以邀请另一个用户加入一个组。我有一个邀请Rest API端点的控制器和一个实现业务逻辑的服务层。

accept方法在邀请服务层中定义:

public void accept(long invitationId, String username) {
    Invitation invitation = this.loadById(invitationId);
    User user = userService.loadByUsername(username);
    validateAccessToInvitation(invitation, user);
    Group group = invitation.getGroup();
    group.addMember(user);
    invitationRepository.delete(invitation);
    // groupRepository.save(group);
}


我想知道访问另一个实体存储库(此处:group repository)某个实体服务层(此处:invitation服务层)是否是一个好主意。

一种选择是将save方法添加到group服务层。但这只会调用groupRepository上的保存,这在某种程度上使人感觉它不是一个好的设计。

最佳答案

我可能会考虑在服务层类中为组公开一个addMemberToGroup方法。然后,该逻辑被捆绑在一起,如果将成员添加到组的逻辑发生了任何变化,您都可以在中央明显的位置进行操作。

我什至可以说这种方法可能违反单一责任原则。

09-11 04:46