Builder模式提供了通过一个产品的成分逐步组装形成产品的处理。当使用这个模式的时 候,一般需要创建一个Bu ilder类,这个类包含了决定什么bu ilder方法被调用和那一种顺序调用来保证适当的产品组装的逻辑。
对于每一个产品来说,你必须为Bu ild er类的每一个builder方法提供相应的处理逻辑;每一个builder方法一般返回产品个构成要素之一。
Bu ilder模式中,基于Java的解决方法是不难的,但是java代码啰嗦并且没有突出产品的组装结构,基于这个原因,Bu ilder模式在J AVA中使用的比较少;开发者使用无法组织的代码或者与别的代码混合重复的构建类型逻辑,非常遗憾,因为Build er模式是如此的强大。
Groovy的builder提供了一种解决方案,该方案使用嵌套的闭包来方便的确定复杂的产品。这样的规格是易读的,因为出现的代码直接映射到产品的结构,groovy有基于Builder模式的内建类库,这允许你容易的建立任意节点的结构,制作像HTML或者XML一样的标 记,在swing中定义GUI或者别的控件工具箱,甚至在ANT中访问大量的函数。