Builder模式,个人觉得应用场景主要在与针对多个不同参数创建多个构造方法情况,这样创建对象很麻烦,这时候“链式”builder模式就可以派上用场了,首先上代码感受一波:
实体类:
public class User {
private String username;
private String password;
public static Builder newBuilder() {
return new Builder();
}
private User(Builder builder) {
username = builder.user.username;
password = builder.user.password;
}
public static final class Builder {
private User user;
public Builder() {
}
public Builder username(String val) {
this.user.username = val;
return this;
}
public Builder password(String val) {
this.user.password = val;
return this;
}
public User build() {
return new User(this);
}
}
}
应用:
public class CodingTest {
public static void main(String[] args) {
User user = User.newBuilder().username("zhangsan").build();
}
}
-----------------------------------------------------------
以上只是其中一种实现方式,在builder没有定义和User一样的属性,而是通过定义User对象方式,方便维护!建议这种方式。
如果使用idea开发工具的同学,可以安装一个叫“inner Builder”的插件,定义后实体后,可以右键——>generate..——>Builder就可以自动构建builder代码。
赶快尝试下吧。有问题可以给我留言哦!