如果一个类的属性过多,用构造器来构建对象很难写,因此我们时用Build方式来构建对象。写法大致如下。
import java.io.Serializable;
import java.util.Date;
public class Log implements Serializable {
private static final long serialVersionUID = 3355538580546591073L;
private Long id;
private String username;
/** 模块 */
private String module;
/** 参数值 */
private String params;
private String remark;
private Boolean flag;
private Date createTime;
public Log(Builder builder) {
this.id = builder.id;
this.username = builder.username;
this.module = builder.module;
this.params = builder.params;
this.remark = builder.remark;
this.flag = builder.flag;
this.createTime = builder.createTime;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getModule() {
return module;
}
public void setModule(String module) {
this.module = module;
}
public String getParams() {
return params;
}
public void setParams(String params) {
this.params = params;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Boolean getFlag() {
return flag;
}
public void setFlag(Boolean flag) {
this.flag = flag;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public static class Builder {
private static Long id;
private static String username;
/** 模块 */
private static String module;
/** 参数值 */
private static String params;
private static String remark;
private static Boolean flag;
private static Date createTime;
public Builder() {
}
public Builder id(Long id) {
this.id = id;
return this;
}
public Builder username(String username) {
this.username = username;
return this;
}
public Builder module(String module) {
this.module = module;
return this;
}
public Builder params(String params) {
this.params = params;
return this;
}
public Builder remark(String remark) {
this.remark = remark;
return this;
}
public Builder flag(Boolean flag) {
this.flag = flag;
return this;
}
public Builder createTime(Date createTime) {
this.createTime = createTime;
return this;
}
public Log build() {
return new Log(this);
}
}
}
调用方法:
Log log =new Log.Builder().username(username).module(LogModule.LOGIN).remark(remark).createTime(new Date())
.build();
这样我们就可以时用我们有需要的属性赋值,并且进行构建对象。