在这里我们使用一个构建房屋的场景来说明“生成器”——builder模式的使用。
这个模式的定义是:
1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2、当构造过程必须允许被构造的对象有不同的表示时。
简单的说,它有点像工厂模式,但是最终生成“产品”的是Director而非Factory,Director可以使用的builder来生成产品。而builder——生成器则遵循统一的接口,实现不同的内容,从而达到将一个复杂对象的构建与它的表示分离的目标。
下面看这个实际的例子吧:
首先,这是我们最终需要生成的产品——房屋,它具有房间数量和门数量的属性。


























下面就是房屋的真正构建者——“生成器”的接口定义,以及它的一个实现。








































那么,这就是所谓的Director——最终构建房屋的“表示者”。我们需要给它提供“生成器”,然后由它来构建房屋。


















最后,当然是我们的测试启动类了,可以看到,使用生成器模式的简单过程就是:
1、创建生成器对象。
2、表示者使用此生成器对象构建最终产品。



















