java - Setter 返回这个 vs builder

标签 java builder

我想知道,在构造对象时,返回 this 的 setter 有什么区别:

public User withId(String name) {
    this.name = name;
    return this;
}

和一个构建器(例如由 Builder Generator 插件为 IDEA 生成的构建器)?

我的第一印象是返回 this 的 setter 要好得多:

  • 它使用更少的代码 - 没有额外的构建器类,在对象构造结束时没有 build() 调用。
  • 它读起来更好:
    new User().withName("Some Name").withAge(30);
    
    对比
    User.UserBuilder.anUserBuilder().withName("Some Name").withAge(30).build();
    

那为什么要使用构建器呢?有什么我想念的吗?

最佳答案

构建器是设计模式,用于为代码带来清晰的结构。它们还经常用于创建不可变的类变量。您还可以在调用 build() 方法时定义前提条件。

关于java - Setter 返回这个 vs builder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63121656/

相关文章:

java - 对于 Windows 7 Ultimate N,directory.exists() 返回 false

java - Selenium Webdriver "Expectedconditions.not"未按预期工作

Java 中断构建器模式

design-patterns - 构建器模式的 clojure 方式是什么?

java - Builder Factory 返回不同的子接口(interface)

ruby-on-rails - 需要在 Builder 函数名称中使用连字符

java - 为什么我会收到这些错误?

javascript - 如何获取返回servlet给ajax的特定字段?

java - HttpException : 500 when running a SPARQL query on remote endpoint

java - Class.newInstance() 是否遵循 "Abstract factory"设计模式?