Builder 模式

介绍

Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。

该模式是为了将构建复杂对象的过程和它的部件解耦,使得构建过程和部件的表示隔离开来。

AlertDialog 的 Builder 模式

Builder 中有一个参数为 AlertController.AlertParams ,在 Builder 的 set 系列方法中,将用户设置的参数保存在 AlertController.AlertParams 参数中

AlertDialog 的创建,在 Builder 的 create 方法中,创建了一个 AlertDialog 对象,并在 AlertParams 的 apply 方法中,将 AlertParams 中保存的用户设置的参数通过 AlertDialog 的 set 系列方法设置到 AlertDialog 对象中。

这个过程就是典型的 Builder 模式。

当然,在 AlertDialog 中是使用 AlertController 来保存参数的,这就是另外一回事了,从 Builder 到 AlertDialog 的过程是 Builder 模式的工作过程

AlertDialog 的工作过程

  1. 在 AlertDialog 对象的构造过程中使用 Builder 模式,最后将用户设置的参数保存在 AlertDialg 的内部类 AlertController 中

  2. AlertDialog 的 show 方法中,才是真正工作过程的核心部分,下面先直观的列出 show 方法的工作过程

    1. 调用 AlertDialog 的 onCreate 方法,为 Window 对象设置要显示的布局,并使用 Alertcontroller 参数保存的数据初始化布局中的视图内容。
    2. onStart() 方法调用
    3. 调用 WindowManager 的 addView 方法完成显示到桌面

你可能感兴趣的:(Builder 模式)