【讀書筆記】設計模式(三)——建造者模式(Builder)

定義

將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。

使用場景

(1) 相同的方法,不同的執行順序,產生不同的事件結果時
(2) 多個部件或零件,都可以裝配到一個對象中,但是產生的運行結果又不同時
(3) 產品類非常複雜,或者產品類中的調用順序不同產生了不同的作用,這個時候使用建造者模式非常合適
(4) 當初始化一個對象特別複雜,如參數多,且很多參數都具有默認值時

優缺點

優點:良好的封裝性,使用建造者模式可以使客戶端不必知道產品內部組成的細節;建造者獨立,容易擴展
缺點:會產生多餘的Builder對象以及Director對象,消耗內存

簡單實現

public class People {
    private int age;
    private int sex;
    private String name;
    private String email;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public static class Builder{

        private People people = new People();

        public Builder buildName(String name){
            people.setName(name);
            return this;
        }

        public Builder buildAge(int age){
            people.setAge(age);
            return this;
        }

        public Builder buildSex(int sex){
            people.setSex(sex);
            return this;
        }

        public Builder buildEmail(String email){
            people.setEmail(email);
            return this;
        }

        public People create(){
            return people;
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章