何时应该使用建造者设计模式?

19

我正在学习设计模式,并发现了生成器设计模式。这个设计模式有什么好处,什么时候应该使用它?我查阅了www.dofactory.comwww.blackwasp.com等网站,但仍然不理解其好处。顺便说一句,我是一个新手,希望你能用简单的方式来解释。


3
可能是 When would you use the Builder Pattern? 的重复问题。 - Péter Török
1
还可以查看https://dev59.com/Lm035IYBdhLWcg3wBLNL。 - Sandeep G B
1
为什么在SO上最有趣的问题总是被关闭? - Sylvain Rodrigue
4个回答

26

建造者设计模式帮助我们分步骤构建对象。它专注于逐步构建复杂对象,并强制执行一个流程来创建一个成品对象。这意味着在准备好并可被他人使用之前,必须按照一些指示的步骤来处理对象。

通常,它允许您封装复杂创建逻辑。

建造者模式非常类似于工厂模式。建造者与工厂的主要区别在于,在构建对象时需要做很多事情时,建造者非常有用。

了解更多信息:
http://en.wikipedia.org/wiki/Builder_pattern
http://www.codeproject.com/KB/architecture/Builder_Design_Pattern.aspx


1
简单的措辞更好,感谢这个。 - Iqra.

5

建造者设计模式可以隐藏构建类中的复杂逻辑。假设我们正在开发一个方案,根据应用程序用户选择的不同季节构建一个大型足球场地。我们将创建一个建造者类并在其中传递季节信息对象。然后建造者类负责根据季节构建场地。


2

当我们希望实例按照特定的顺序执行特定的任务时,使用生成器设计模式。详情请参见生成器模式维基页面

希望这可以帮助到您。


2

你有没有查看过Wikipedia Builder页面

其意图在于抽象对象构建的步骤,以便这些步骤的不同实现可以构建不同表示的对象。

维基百科中提供了Java示例,这应该会有所帮助。


1
示例似乎不再涉及披萨了 :) - David Doria
@DavidDoria 感谢您指出有人吃掉了维基百科的披萨,现在这个例子已经不再可用 :) 我已经更新了我的帖子。 - MarcoS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接