簡體   English   中英

域驅動設計:DTO在哪里?

[英]Domain-Driven Design: where are the DTO?

我對域驅動的設計體系有疑問。 在嘗試使用REST之前,一切看起來都很不錯。 我應該使用DTO而不是前端上的實體。

我的架構如下: 在此處輸入圖片說明

我的問題是:

我是否應該使用Web模塊並堅持使用DTO? 這是正確的方法嗎?

在此處輸入圖片說明

  • DDD主要指隔離的單片系統,或者至少不涉及跨系統通信的各個方面。

因此,即使您“按照DDD”工作,也必須做出決定-如何處理這些方面。

參考:DDD書中介紹的模式列表及其關系: 在此處輸入圖片說明

您應該將REST視為允許訪問應用程序層服務的眾多“端口”之一。 REST,RPC,Websocket等服務將調整輸入並將其映射到應用程序層調用,反之亦然。 在每個服務邊界,您仍然可以靈活地調整響應,而不必與應用程序服務方法響應進行1-1映射,但是可以。

根據Vaughn Vernon的《實現域驅動設計》一書,DTO位於應用層中。

理想情況下,域模型應該由工廠創建。 因此工廠可以接受DTO並返回Domain模型的實例。 或者,您可以使用接受DTO的Builder模式來創建Domain模型。 這樣,您的域模型就不會受到DTO的影響,並且體系結構圖中的Application層應接受DTO作為參數。

在您的圖中,我不確定應用程序層的目的是什么。 因為我們所謂的應用程序應該是領域模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM