繁体   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