结构图:
组成:
产品(Product):需要创建的复杂对象。
抽象生成器(Builder):定义用于创建产品对象各个部分的接口。
具体生成器(Concrete Builder):实现抽象生成器接口,负责创建和组装产品的各个部分。
指挥者(Director):负责构建产品的过程,通常接受一个生成器对象作为参数,并使用该对象的方法来组装产品。
单个生成器
定义:builderStepX():ProductA 调用:b.builderStep1().builderStep2.**; 当一个复杂对象的变化仅仅是属性值的变化,而不涉及到整体结构的变化时,只需要一个生成者。在这种情况下,生成者可以通过扩展属性和填充属性的方法来创建具有不同属性值的复杂对象。
多个生成器
定义:void builderStepX(); 当需要为同一产品(Product)提供不同的表示形式或构建过程时,可以使用多个生成器。每个生成器负责创建并组装产品的各个部分,但可能采用不同的配置、数据源或构建方法。