在域层或数据访问层中?

有帮助吗?

解决方案

DTOS的主要动机是提出一个定制到另一层(通常为演示层)的接口。例如,数据输入屏幕可能还需要从用户对象中的一些数据,除了从订单等上一些位。 “服务”层。

有图书馆 推土机 在那里自动化域模型和DTO之间转换的怪异工作。

关键取走是DTO是将数据(不是业务逻辑)从富裕域模型对象中抽象出来的 - 因此,DTO应尽早将DTO转换回域对象(在服务层),因此其余的应用程序层可能与较丰富的域对象(数据和业务逻辑)一起使用

其他提示

我不是DTO的粉丝,但我说不要在数据层中这样做。数据层涉及模型对象及其持久性。为什么通过将DTO带入其中来将其与其他层搭配?我将它们映射到其他地方,可能在服务和UI层之间,就在它们越过创建的位置和使用的位置之间的边界。

将其放在MVC上下文中,如果您具有控制器和服务层,则应将其放入控制器中。这将使DTO更靠近视图层,并允许服务层仅使用域对象播放,从而避免与其他模型的混淆。

DTO本身实际上是MVC模型(此处解释: https://stackoverflow.com/a/1058186).

以下是推荐的教程,将控制器,服务层和DTO概念捣碎在一起(在Java中使用Spring Framework,但对于其他平台也很明显):https://www.baeldung.com/entity-to-and-y-prom-dto-for-a-java-spring-application

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top