build也是我们很常用的设计模式,他的主要应用场景是创建对象并对对象赋值,有的同学可能说我直接创建一个对象,用set方法也能对对象赋值。那么build模式和对象set方法的区别是什么呢,我们先来看看bulid模式的实现
public class Student {
private String name;
private String age;
private String school;
private String grade;
public static class Builder{
private Student student;
public Builder() {
student = new Student();
}
public Builder setName(String name){
student.name = name;
return this;
}
public Builder setAge(String age){
student.age = age;
return this;
}
public Builder setSchool(String school){
student.school = school;
return this;
}
public Builder setGrade(String grade){
student.grade = grade;
return this;
}
public Student bulid(){
return student;
}
}
}
调用时用如下方法调用
Student.Builder builder = new Student.Builder()
.setAge("11")
.setName("小明")
.setSchool("希望小学")
.setGrade("99");
Student student = builder.bulid();
这只是build模式的一种写法,此种写法和用对象的set方法赋值的最大不同就是,此对象一旦调用build方法创建后不能,student的属性值就不变,因为student属性都是私有的且没有set方法。