当类中的参数很多,并且不知道实例化对象的时候需要用到哪些参数,就需要创建很多构造器。参数每多一个就需要添加构造器,代码维护起来很不方便,可读性也很差。
使用Builder模式实例化的时候就可以有选择的为参数赋值。
package DesignPatterns.BuilderPattern;
/**
* @Author: zdj
* @Description: 类参数很多时,实例化对象的时候不知道用哪些参数,就需要创建很多构造器,代码维护起来很麻烦。
* Builder模式实例化对象的时候参数可选,避免了上述问题
* @Date: 2019年05月05日 10:17
*/
public class Contact {
private String name;
private Integer sex;
private Integer age;
public Contact(Builder builder){
this.name = builder.name;
this.sex = builder.sex;
this.age = builder.age;
}
public static class Builder{
private String name;
private Integer sex;
private Integer age;
public Builder name(String name){
this.name = name;
return this;
}
public Builder sex(Integer sex){
this.sex = sex;
return this;
}
public Builder age(Integer age){
this.age = age;
return this;
}
public Contact build(){
return new Contact(this);
}
}
public static void main(String[] args) {
Contact contact = new Builder()
.age(18)
.name("zhang")
.build();
System.out.println(contact.age);
System.out.println(contact.name);
System.out.println(contact.sex);
}
}
运行结果: