将一个复杂对象的构建过程分离,使得同样的构建过程可以创建不同的结果。
相同的方法,不同的执行顺序,产生不同的结果
多个零件或者部件,可以组装到一个对象中,产生不同的结果
初始化过程比较复杂,参数较多
举一个例子,Android对话框,就是Builder模式,像这样:
本是一个相对复杂的对话框,通过链式编程构建出来。
我们假设组装一台宝马轿车,它有品牌、型号、颜色。
车
宝马车
下面是Builder类,用来描述构建一台车需要哪些方法
接下来来实现构建一台宝马车的Builder
这里的build方法都返回自身,用来链式调用。
下面来构建一台红色的3系宝马轿车
如果你还想给车子添加个HUD、换个真皮座椅,只需要在Builder里添加对用的方法,构建的时候设置属性就可以了。
Builder设计模式具有良好的封装性,构建者独立,方便扩展。
不足就是需要创建多个Builder。