build模式小例子

簡單介紹一下build模式

直接上代碼。簡單易懂。也方便自己以後複習。

public class Person {
    private final int age;
    private final int safeID;
    private final String name;
    private final String address;

    public int getAge() {
        return age;
    }

    public int getSafeID() {
        return safeID;
    }

    public String getName() {
        return name;
    }

    public String getAddress() {
        return address;
    }

    public static class Builder {
        private int age = 0;
        private int safeID = 0;
        private String name = null;
        private String address = null;

        public Builder(){
        }

        public Builder(String name) {
            this.name = name;
        }

        public Builder age(int val) {
            age = val;
            return this;
        }

        public Builder safeID(int val) {
            safeID = val;
            return this;
        }

        public Builder address(String val) {
            address = val;
            return this;
        }

        public Person build() { // 構建,返回一個新對象
            return new Person(this);
        }
    }

    private Person(Builder b) {
        age = b.age;
        safeID = b.safeID;
        name = b.name;
        address = b.address;

    }
}

調用方法是:
Person person = new Person.Builder().age(10).address("上海").build();
        Log.e(TAG, ""+person.getAge());
        Log.e(TAG, ""+person.getName());
        Log.e(TAG, ""+person.getAddress());

如果在build是沒有設置。那麼Log值就是各類型的默認值。


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