Java Builder模式

當類中的參數很多,並且不知道實例化對象的時候需要用到哪些參數,就需要創建很多構造器。參數每多一個就需要添加構造器,代碼維護起來很不方便,可讀性也很差。

使用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);
    }
}

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章