构造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
一个 Builder 类会一步一步构造最终的对象。
该 Builder 类是独立于其他对象的。
比如我要创建一个学生,
但是 我创建的学生有些特别。
比如 一个学生没有性别,另一个又没有年龄。
在代码里,我们可以这样实现
public class Student {
private String name;
private Integer age;
private String sex;
// 构造者
static class StudentBuilder{
private String name;
private Integer age;
private String sex;
public StudentBuilder setName(String name) {
this.name = name;
return this;
}
public StudentBuilder setAge(Integer age) {
this.age = age;
return this;
}
public StudentBuilder setSex(String sex) {
this.sex = sex;
return this;
}
}
public Student(StudentBuilder builder){
this.name = builder.name;
this.age = builder.age;
this.sex = builder.sex;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
public static void main(String[] args) {
// 没有性别的学生
Student student = new Student(new StudentBuilder().setAge(19).setName("二狗子"));
System.out.println(student);
// 没有年龄的学生
Student student1 = new Student(new StudentBuilder().setName("取名真是一个技术活").setSex("男"));
System.out.println(student1);
}
}
打印结果如下:
{\__/} {\__/}
( ·-·) (·-· )
/ >------------------------------------------------< \
| ☆ |
| ☆ |
| ★ |
| ☆ |
| ☆ |
| |
-------------------------------------
如有兴趣可以关注我的公众号