生成器模式将一个复杂对象的构建和它的表示分离,使得一样的构建过程能够建立不一样的表示。生成器模式的主要功能是构建复杂的产品,并且是细化地、分步骤地构建产品,也就是说生成器模式重在一步一步解决构建复杂对象的问题。php
使用文件的导出来实现生成器模式。文件的导出有普通文本和xml等文件格式。生成器做为一个接口,不一样的具体生成器具体实现接口的方法。还有一个指导者负责总体构建的算法部分,是相对不变的部分。git
生成器模式构建对象的过程是统一的、固定不变的,变化的部分放到生成器部分了,只要配置不一样的生成器,那么一样的构建过程,就能构建出不一样的产品来。生成器模式的重心在于分离构建方法和具体的构造实现,从而使得构建算法能够重用。具体的构造实现能够很方便地扩展和切换,从而能够灵活地组合来构造出不一样的产品对象。生成器模式跟模板方法模式很像,可是模板方法模式主要是用来定义算法的骨架,把算法中某些步骤延迟到子类中实现。生成器模式是用“指导者”来定义总体的构建算法,把算法中某些涉及到具体部件对象的建立和装配的功能,委托给具体的生成器来实现。github