首頁  >  文章  >  Java  >  詳細介紹Android建造者(Builder)模式的案例

詳細介紹Android建造者(Builder)模式的案例

黄舟
黄舟原創
2017-03-11 11:47:421299瀏覽

關於Builder 模式詳述:http://www.php.cn/java-article-355847.html

先來張圖

  

# #看到Android  中使用了Builder 模式的地方還是很多的。

使用時大概如下:

Notification noti = new Notification.Builder(context).build();AlertDialog dialog = new AlertDialog.Builder(context).create();

   在builder()和create()之前還可以建立多個屬性,類似下面的範例

範例

/**
 * author : stone
 * email  : aa86799@163.com
 * time   : 15/7/3 10 26
 */
public class TestBuilder {

    private int a;
    private String b;

    public int getA() {
        return a;
    }

    public String getB() {
        return b;
    }

    protected TestBuilder(Builder builder) {
        this.a = builder.ma;
        this.b = builder.mb;
    }

    public static class Builder {
        private int ma;
        private String mb;

        public Builder createA(int a) {
            this.ma = a;
            return this;
        }

        public Builder showB(String b) {
            this.mb = b;
            return this;
        }

        public TestBuilder build() {
            return new TestBuilder(this);
        }
    }

    public static void main(String[] args) {
        TestBuilder tb = new TestBuilder.Builder()
                .createA(88)
                .showB("susan")
                .build();
        
    }
}


註:

1. 這裡是透過靜態內部類別Builder來建構零件

2. 每個零件的建構方法傳回該建構者

3. 外部實際物件的建構方法的存取符應為private或protected,使其只能透過內部類別來建立

與普通的Java-Bean的比較:

Bean中用setter 或建構方法中一堆參數, 來給屬性賦值

這裡,用new Builder().a.b.c...build();

以上是詳細介紹Android建造者(Builder)模式的案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn