我有一个 Spring Boot CRUD 应用程序。 以单个实体“用户”为例
我已经通过三个包将应用程序分布在三层
我尽量保持三层完全独立
我有两个地图绘制者
以我有限的知识,我认为隔离足以保持干净的架构
我有两个无法纠正的担忧/困境
例如, 我有一个控制器方法来添加用户
public ResponseEntity<UserDto> add(UserDto userDto) {
UserPojo userPojo = userPojoToDtoMappers.toPojo(userDto);
userPojo = createUserUseCase.execute(userPojo);
return ResponseEntity.ok(userPojoToDtoMappers.toDto(userPojo));
}
以及从控制器调用的服务方法
public UserPojo execute(UserPojo userPojo) {
return userPojoGateway.add(userPojo);
}
在我的示例中,映射的负担由调用层(控制器)承担,但这似乎破坏了干净的架构,因为 POJO 信息必须与控制器和服务层共享
请建议哪一层应该有映射器,以及调用者或接收者是否应该承担映射的负担
这与调用者和接收者方法无关。在这里,我们正在尝试实现分层架构。在分层架构中,您希望各层之间有一定的抽象。
我希望它能帮助您理解这个概念。