java - 有效的Java。 Serializable Builder 模式(如何添加公共(public)无参数构造函数?)

标签 java builder effective-java

我想使用 Builder 模式以 Joshua Bloch 的风格创建一个类。但我想将此类用作 DTO 对象并将其从 EJB 传输。所以它需要有公共(public)的无参数构造函数。如何在构建器模式中实现这种 java-bean 风格?在 Effective Java 对象中,只有一个构造函数接受 Builder 对象作为参数。如果我在那里添加公共(public)无参数构造函数,那么我就失去了构建器相对于 Java-bean 模式的优势。

最佳答案

不确定是什么让您在这里使用构建器模式,但这是我的经验对您的问题的说明。

  1. 您正在使用 EJB。因此,我假设您处于分布式应用程序模式。
  2. 您的 DTO 将用于将数据传入和传出 EJB。因此,您应该考虑使此 DTO 可序列化(现在,使用无参数构造函数是有意义的)。

根据我的说法,您所需要的只是某种转换器,它从某个层接受 obj1 进行处理,然后返回它。

我建议仅在您的对象构造是一个多步骤过程(例如,用户注册)的情况下使用构建器。

关于java - 有效的Java。 Serializable Builder 模式(如何添加公共(public)无参数构造函数?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14277219/

相关文章:

java - tomcat 7上单线程挂起

java - 在一个具体类中定义所有抽象方法

java - new ImmutableMap.Builder() 与 ImmutableMap.builder()

grails - Grails标准构建器

java - 可序列化的单例类

java - 使用 tomcat 7 容器配置 Weld 2.0 项目时出错

java - Graphics.paintComponents .drawString 方法没有在我的骰子滚轴上放置数字

reporting-services - 表中表 | Power BI 报表生成器

java - 构建器模式验证 - Effective Java

java - 在扩展类上使用 Builder 构造函数?