簡體   English   中英

如果我的實體與它相同,我應該創建 DTO 類嗎?

[英]Should I create DTO class if my entity is the same with it?

   @Entity
   public class Person{
       private String id;
       private String name;
       private Integer age;
   }
   

那里我想將所有字段返回給客戶端,那么是否需要創建 dto 類? 在這種情況下,最佳做法是什么?

當域模型由許多不同的對象組成並且表示模型一次需要它們的所有數據時,DTO 會有所幫助,或者它們甚至可以減少客戶端和服務器之間的往返。

使用 DTO,我們可以從我們的域模型構建不同的視圖,允許我們創建同一域的其他表示,但在不影響我們的域設計的情況下根據客戶的需求對其進行優化。 這種靈活性是解決復雜問題的有力工具。

主要原因是當您從應用程序域模型中添加、刪除或重命名字段時,您不想破壞您的 API 客戶端。

以下是使用 DTO 的一些好處:

  • DTO 可以根據您的需求進行定制,並且在僅公開持久性實體的一組屬性時非常有用。 您不需要諸如@XmlTransient 和@JsonIgnore 之類的注釋來避免某些屬性的序列化。

  • 通過使用 DTO,您將避免在持久性實體中出現大量注釋,也就是說,您的持久性實體不會因​​非持久性相關的注釋而變得臃腫。

  • 您將完全控制在創建或更新資源時收到的屬性。

您可以查看此 stackoverflow 答案以獲取更多詳細信息https://stackoverflow.com/a/36175349/3143009

暫無
暫無

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

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