2017-06-14 87 views
0

我想要创建基于其他几个对象创建的对象。我想用生成器模式但我有一些疑惑。我可以看到构建器模式的所有示例都显示构建器具有简单的方法(例如withName(),withSurname()等)。每种方法都将输入参数分配给构建器中的字段。然后build()方法创建目标对象。创建对象的设计模式

我想使用更复杂的对象作为这些方法的参数。在其中一些方法中,我将会有更复杂的逻辑来创建将在构建器中分配的字段值。

建造者模式正确的选择吗?构建器方法可以有更复杂的逻辑吗?我应该使用另一种设计模式吗?

+0

IIRC,构建模式的动机是避免具有许多参数和许多重载构造函数的膨胀构造函数。我不认为建设者方法的复杂性必须被限制在简单的任务上。但是,我会比较建造者和工厂,看看哪个更适合。 –

+0

这可能是有用的https://stackoverflow.com/questions/757743/what-is-the-difference-between-builder-design-pattern-and-factory-design-pattern –

回答

2

编程不是跟随T的模式。 如果标准模式不适合,请自己制作。他们作为指导,因为他们展示了经过良好测试的设计。

在这种情况下,如果有必要的话,您可以使用复杂的方法,我以前见过这样的构建器。