Builder模式,听起来就是为创建复杂对象而设计的,不然怎么能叫builder呢。一个复杂的对象往往有很多部分组成,使用Builder模式能很好的控制构造过程。Builder角色会有很多构建对象的方法,可以通过每个方法return this,来进行链式的调用。链式调用,早之前学编程的时候看到这种方式的代码很不爽,总感觉一大串,又不明白调用顺序。而且我们大部分人学编程的时候,都是从面向过程,一句一个分号开始的。不过当你慢慢熟悉之后,又发现这样写无论在可读性和代码量上都有优势。特别是到现在都很火的RxJava,似乎把链式调用发挥到了极致,使用它我们能更优雅效率地完成任务。android系统的设计中,也能看到此类模式,如AlertDiaog.Builder来创建弹窗的方式。
代码实现
既然是复杂对象,就需要Builder角色有提供很多部件的能力,对应到代码就是Builder类有很多创建方法
public interface Builder {
//创建能力ABC......
void buildPartA();
void<