简介
建造者模式(Builder Pattern)是使用多个简单的对象一步一步构建成一个复杂的对象的一种设计模式,是Java23种设计模式中的一种。
使用方式如下:
Student student = new Student.Builder()
.number(15)
.name("小明")
.sex("男")
.build();
简单地看来建造者模式的优点无非是灵活, 在新建对象时可以选择性的传入参数,同时实现点运算符连缀,增删方便快捷,可读性强。
代码示例
关于代码的实现,网上有很多版本,有新建一个建造者类,也有创建并实现一个建造者接口的,博主本着方便(懒惰)和实用的原则,在需要使用建造者模式的类中增加静态内部类Builder,定义外部类的对象,并用对应方法传入该对象的成员变量,最后用build方法返回该对象,建造完毕。
public class Student {
private int number;
private String name;
private String sex;
public Student() {}
/**
* 建造者 (静态内部类)
*/
public static class Builder {
private Student student;
public Builder() {
student = new Student();
}
public Builder number(int number) {
student.number = number;
//返回this引用实现连缀,下同
return this;
}
public Builder name(String name) {
student.name = name;
return this;
}
public Builder sex(String sex) {
student.sex = sex;
return this;
}
public Student build() {
//返回该Student对象,建造完毕
return student;
}
}
public String toString() {
return String.valueOf(number) + " " + name + " " + sex;
}
public static void main(String[] args) {
Student student = new Student.Builder()
.number(15)
.name("小明")
.sex("男")
.build();
Student student2 = new Student.Builder()
.number(16)
.name("小红")
.sex("女")
.build();
System.out.println(student.toString());
System.out.println(student2.toString());
}
}