小编Lin*_*osa的帖子

你会在哪里使用Builder模式而不是抽象工厂?

我已经看到这个问题在这里和那里出现了几次,但我从来没有找到并回答我很高兴.

来自维基百科:

Builder专注于逐步构建复杂对象.Abstract Factory强调一系列产品对象(简单或复杂).Builder将产品作为最后一步返回,但就Abstract Factory而言,产品会立即返回.

但对客户来说不是一回事吗?一旦它被构建,他就会获得完整的对象,所以对他来说没有额外的功能.

我看到它的唯一方法是作为一种方式或按步骤组织构造函数代码,以强制实现构建器的结构.哪个好,但从抽象工厂那里迈出的一步很难.


来自维基百科的下一篇文章是一个很好的参考,以达到我的观点:

通常,设计开始使用工厂方法(不太复杂,可定制,子类增加),并逐渐向抽象工厂,原型或构建器(更灵活,更复杂)发展,因为设计师发现需要更多灵活性的地方.

如果是这样,那么您需要在系统中引入哪种复杂性,从而将抽象工厂更改为构建器?

我的观点是,我无法找到并举例说明抽象工厂是否足够,而你需要一个Builder.

language-agnostic design-patterns builder-pattern

23
推荐指数
2
解决办法
3557
查看次数