當類中的參數很多,並且不知道實例化對象的時候需要用到哪些參數,就需要創建很多構造器。參數每多一個就需要添加構造器,代碼維護起來很不方便,可讀性也很差。
使用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);
}
}
運行結果: