17

设计模式-03-生成器模式

 5 years ago
source link: https://segmentfault.com/a/1190000018825096?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

生成器模式

概述

生成器模式将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式的主要功能是构建复杂的产品,而且是细化地、分步骤地构建产品,也就是说生成器模式重在一步一步解决构建复杂对象的问题。

实现

使用文件的导出来实现生成器模式。文件的导出有普通文本和xml等文件格式。生成器作为一个接口,不同的具体生成器具体实现接口的方法。还有一个指导者负责整体构建的算法部分,是相对不变的部分。

总结与分析

生成器模式构建对象的过程是统一的、固定不变的,变化的部分放到生成器部分了,只要配置不同的生成器,那么同样的构建过程,就能构建出不同的产品来。生成器模式的重心在于分离构建方法和具体的构造实现,从而使得构建算法可以重用。具体的构造实现可以很方便地扩展和切换,从而可以灵活地组合来构造出不同的产品对象。生成器模式跟模板方法模式很像,但是模板方法模式主要是用来定义算法的骨架,把算法中某些步骤延迟到子类中实现。生成器模式是用“指导者”来定义整体的构建算法,把算法中某些涉及到具体部件对象的创建和装配的功能,委托给具体的生成器来实现。

代码实现:

生成器模式(php/go)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK