Builder ,生成器模式。
Builder 模式將一個對象的創建與表示分離,從而使得相同的創建過程可以創建出不同的表示對象。
仍以汽車工廠舉例,一個汽車集團下面有許多工廠,每個工廠生產出不同的車型。站在集團的層面,其實集團只需要知道工廠造輪子,造引擎,而並不關心輪子的具體尺寸,引擎的具體馬力,它只需要知道工廠最終返回的給它的是一輛完整的汽車,就一切 ok
類圖
在這個類圖中,省略了 Wheel,Engine,Vehicle 。 DasAuto 爲新引入的一個類,包含着一個對具體 builder 父類的引用。而 VehicleBuilder 中加入一個 getVehicle ()的方法,用來返回創建的 Vehicle
代碼
對於汽車的零件,參考抽象工廠的日誌
1 DasAuto
2 VehicleBuilder
3 NormalVehicleBuilder
4 RaceVehicleBuilder
5 測試程序
package zl.study.designpattern.builder.test;
import zl.study.designpattern.builder.DasAuto;
import zl.study.designpattern.builder.NormalVehicleBuilder;
import zl.study.designpattern.builder.Vehicle;
import zl.study.designpattern.builder.VehicleBuilder;
public class BuilderTest {
public static void main(String args[]){
VehicleBuilder builder = new NormalVehicleBuilder();
DasAuto dasAuto = new DasAuto();
Vehicle normalVehicle = dasAuto.createNormalCar(builder);
System.out.println(normalVehicle);
}
}