通常我们创建一个对象,比如说Student student = new Student(),里面有一大堆乱起八糟属性,我们后面new对象进行操作时,可能涉及到set属性值,可能导致这种情况:
Student student = new Student();
student.setXXX(XXX);
student.setXXX(XXX);
student.setXXX(XXX);
student.setXXX(XXX);
student.setXXX(XXX);
student.setXXX(XXX);
student.setXXX(XXX);
student.setXXX(XXX);
如果有很多属性,比如十几个时候,那也就是说光创建一个对象就花了十几行,代码规范里面不允许一个方法超过50行的,而且阅读代码时也很难看,不简洁
那么我们还如何写呢?
个人推荐with链式set
StudentModel model = StudentModel.StudentModelBuilder
.generateStudentModel()
.withId(XXX)
.withAppCode(XXXX)
.withCluster(XXXX)
.withPod(XXXX)
.withSchool(XXX)
.withClusterId(XXX)
.build();
这些无需换行写,看起来很简洁,而且多个with可以写在一行
如果生成with方法呢?自己写也可个构造者模式,也可以使用idea的插件Builder Generator
要set的类内部定义静态内部类:
public static final class SchoolModelBuilder {
private SchoolModel schooModel;
private SchoolModelBuilder() {
schoolModel = new SchoolModel();
}
public static SchoolModelBuilder generateSchoolModel() {
return new SchoolModelBuilder();
}
public SchoolModelBuilder withId(Long id) {
schoolModel.setId(id);
return this;
}
// TODO with其它属性
public SchoolModel build() {
return schoolModel;
}
}



