bar*_*oma 9 c# java architecture domain-driven-design dto

域层通过数据传输对象(DTO)与其他层进行通信.我对DTO感到困惑.
DTO 1位于域和表示层之间.
DTO 2位于域和数据层之间.
我应该在图层之间创建两个不同的DTO对象还是仅创建一个DTO.专业方式是哪种?
让我们浏览所有图层:
通常它知道Domain Entities和域层.
DAL可以返回Domain Entities或DTOs (DB oriented data structures).view models如果需要,可以使用这些DTO或域实体来构建表示层()的DTO .
域实体通常很繁重,需要数据映射器或任何ORM.我更喜欢使用Domain Entities,映射它们并避免使用其他DTO.否则也应该映射DTO.
域层应该对实体存储在某处的方式一无所知(例如在DB中).它可以有自己的DTO,它可以是重构引入参数对象的结果.
它应该知道Data Access Layer从DB加载数据并即将Domain Layer访问其业务逻辑.
它可以有自己的DTO - 视图模型,它们是域实体或DB友好DTO的用户界面友好表示.表达层的责任是了解view models.
如果您只有一个演示文稿,您的Application Infrastructure也可以作为表示层的一部分实现,但通常它是一个单独的应用程序层.
这实际上取决于您的具体需求。
一般来说,您应该创建 2 组 DTO。这可以更好地解耦不同层,并使系统的架构更加灵活。具体原因或需要的情况例如:
话虽如此,如果您可以忍受拥有一组 DTO 的限制,并且如果它适合您的需求,您可以共享它们,因为它会产生更少的需要编写和维护的代码。
| 归档时间: |
|
| 查看次数: |
4344 次 |
| 最近记录: |