Builder 模式
2017-03-01 本文已影响22人
任教主来也
介绍
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 的工作过程
-
在 AlertDialog 对象的构造过程中使用 Builder 模式,最后将用户设置的参数保存在 AlertDialg 的内部类 AlertController 中
-
AlertDialog 的 show 方法中,才是真正工作过程的核心部分,下面先直观的列出 show 方法的工作过程
- 调用 AlertDialog 的 onCreate 方法,为 Window 对象设置要显示的布局,并使用 Alertcontroller 参数保存的数据初始化布局中的视图内容。
- onStart() 方法调用
- 调用 WindowManager 的 addView 方法完成显示到桌面