首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

【设计形式】建造者(生成器)

2013-09-12 
【设计模式】建造者(生成器)生成器模式,也叫建造者模式。有人说后者是想强调该模式重点是强调建造过程,而不是

【设计模式】建造者(生成器)

生成器模式,也叫建造者模式。有人说后者是想强调该模式重点是强调建造过程,而不是生成。

个人比较认同,所以后文也叫建造者模式。

建造者模式,主要意图是将对象的建造于他的表示分离。从而使得同样的建造过程可以建造出不同的产品。

参与者有建造者,导演和具体的产品。

举例说明,我们想生产电脑,电脑就是产品。声明一个类,叫builder,而具体的建造者,需要继承自这个父类,并实现其构造方法,并最终返回构造后的产品。

这里变化的部分就是,不同的建造者和构造过程。建造者可以通过继承出新的类来实现扩展。

而建造过程,通过一个director类来封装。每个过程可以对应一个新的导演。导演负责调用具体建造者对应的建造方法。并最终获取其生产的产品。

pc builder working...PC body built!PC screen built!PC mouse built!PC keybord built!RESULT:        A PC With: a Body; a Screen; a Mouse; a Keybord; Ipad builder working...IPad body built!IPad screen built!no mouse!no keybord!RESULT:        An Ipad With: a Body; a Screen; 


该模式,主要是分离了具体组装过程和每个过程的实现。适用于构造过程复杂,并且可以有多种建造方式的场景。建造过程和不同的建造方法很容易扩展。

缺点看起来是客户端需要知道有哪些建造者和建造过程。由客户端来选择具体的导演类和建造者。如果客户端不关注这些,那么就不适用了。

跟抽象工厂的区别是,抽象工厂强调多个系列产品兑现搞得构造方式,而建造者强调构造一个复杂对象的过程。


热点排行