Rumah > Java > javaTutorial > 详细介绍Android建造者(Builder)模式的案例

详细介绍Android建造者(Builder)模式的案例

黄舟
Lepaskan: 2017-03-11 11:47:42
asal
1328 orang telah melayarinya

关于 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();
Salin selepas log masuk

   在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();
        
    }
}
Salin selepas log masuk


注:

1. 这里是通过静态内部类Builder来构造零件

2. 每个零件的构建方法返回该构建者

3. 外部实际对象的构造方法的访问符 应是 private或protected,使其只能通过内部类来创建

与普通的Java-Bean的对比:

Bean中用setter 或 构造方法中一堆参数, 来给属性赋值

这里,用new Builder().a.b.c...build();

Atas ialah kandungan terperinci 详细介绍Android建造者(Builder)模式的案例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan