DTO 补全:在 DtoAssembler 还是 ApplicationService 获取数据?
不应该在 DtoAssembler 里获取其他服务的数据来补全 DTO。DtoAssembler 应该只负责将实体对象转换为 DTO 对象,而不应该涉及其他服务的数据获取。
如果需要获取其他服务的数据来补全 DTO,应该在 ApplicationService 里进行。在 ApplicationService 里,可以调用其他服务的 API 或者领域服务来获取所需数据,并将其组装到 DTO 中。
例如,假设我们要创建一个包含用户信息和订单信息的 DTO。我们可以先在 DtoAssembler 中将 User 实体对象转换为 UserDTO 对象,然后在 ApplicationService 中调用 OrderService 的 API 获取订单信息,并将订单信息添加到 UserDTO 中。
这样做的好处是:
- 遵循单一职责原则:DtoAssembler 只负责 DTO 的转换,ApplicationService 负责业务逻辑的处理,包括数据获取和 DTO 的组装。
- 代码更清晰易懂:将数据获取和 DTO 组装逻辑集中在 ApplicationService 中,使代码更易于理解和维护。
- 更易于测试:可以独立测试 DtoAssembler 和 ApplicationService,提高代码的可测试性。
原文地址: https://www.cveoy.top/t/topic/f2fR 著作权归作者所有。请勿转载和采集!