有两个实体:邀请和组
一个用户可以邀请另一个用户加入一个组。我有一个邀请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
方法。然后,该逻辑被捆绑在一起,如果将成员添加到组的逻辑发生了任何变化,您都可以在中央明显的位置进行操作。
我什至可以说这种方法可能违反单一责任原则。