天天看点

Design Pattern: Builder 模式

您想要建立一个迷宫产生程式,迷宫使用二维阵列来定义,0表示道路,1表示墙,2表示宝物,根据所定义的二维迷宫阵列,您想要程式自动产生各种不同材质的迷宫,例如砖墙迷宫,钻石迷宫等等。 

您可以在程式中定义两个角色,一个是指导迷宫建立的director角色,一个是按照指导者指示建立迷宫的builder角色,director根据定义的迷宫阵列来指导builder,只要更换builder,就可以完成不同材质的迷宫。 

实际上的程式设计如下:

mazedirector.java

imazebuilder.java

solidermazebuilder.java

diamondmazebuilder.java

使用下面的程式来测试一下,它将产生两个迷宫图形:

在迷宫例子中并没有产生或返回产品物件,这视您的需求而定,迷宫例子只是将结果输出至主控台,您也可以设计一个产品物件,或是将结果直接输出为文件。 

简单来说,建筑者模式适用的场合,在于使得您可以依赖抽象的建筑蓝图,而实际建造时可以使用不同的实例,这是其之所以命为builder的原因。