我想知道,在构造对象时,返回 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/