簡體   English   中英

有效 Java。 可序列化生成器模式(如何添加公共無參數構造函數?)

[英]Effective Java. Serializable Builder pattern (how to add public no-arg constructor?)

我想使用 Builder 模式以 Joshua Bloch 的風格創建 class。 但我想將此 class 用作 DTO object 並從 EJB 傳輸。 所以它需要有公共的無參數構造函數。 如何在構建器模式中實現這種 java-bean 樣式? 在有效的 Java object 中只有一個構造函數接受Builder object 作為參數。 如果我在那里添加公共無參數構造函數,那么我就失去了構建器優於 Java-bean 模式的優勢。

不知道是什么讓您使用構建器模式,但這是我的經驗對您的問題的回答。

  1. 您正在使用EJB。 因此,我假設您處於分布式應用程序模式。
  2. 您的DTO將用於在EJB之間傳送數據。 因此,您應該考慮使此DTO可序列化(現在,使用無參數構造函數很有意義)。

據我說,您所需要的只是某種轉換器,該轉換器從某一層接受obj1進行處理,然后將其返回。

我建議僅在您的對象構造是一個多步驟過程(例如,用戶注冊)的情況下使用builder。

如果您使用 Lombok 創建@Builder實現。 您可以使用@Jacksonized注解進行序列化和反序列化。 官方文檔中閱讀更多內容

暫無
暫無

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

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