构建模式主要在建立复杂的javabean时,因字段或者属性太多,会出现大量的构造器而出现。要么使用无参数的构造器创建对象,使用setter设置属性,要么过程中直接使用不同的构造器。build模式可以解决上述两个问题。下面的demo
package com.sensenets.reptile.domain;
/**
* @author caozg
* @Created by 2019-11-25 11:14
*/
public class Person {
private String name;
private int age;
private boolean sex;
public Person(Builder builder) {
name = builder.name;
age = builder.age;
sex = builder.sex;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", sex=" + sex +
'}';
}
private static class Builder{
private String name;
private int age;
private boolean sex;
public Builder buildName(String name) {
this.name = name;
return this;
}
public Builder buildAge(int age) {
this.age = age;
return this;
}
public Builder buildSex(boolean sex) {
this.sex = sex;
return this;
}
private Person build(){
return new Person(this);
}
}
public static void main(String[] args) {
Person person = new Person.Builder().buildName("gosaint").buildAge(20).buildSex(true).build();
System.out.println(person);
}
}
最后测试方法可以看出,使用new Person().builder()创建内部对象,使用buildName设置属性,最后通过build方法创建Person对象。主要是内外部类之间的调用。