【发布时间】:2017-06-14 18:46:10
【问题描述】:
我想创建将基于其他几个对象创建的对象。我想使用 Builder pattern 但我有一些疑问。我可以看到构建器模式的所有示例都表明构建器具有简单的方法(例如 withName()、withSurname() 等)。这些方法中的每一个都将输入参数分配给构建器中的字段。然后 build() 方法创建目标对象。
我想使用更复杂的对象作为这些方法的参数。在其中一些方法中,我将使用更复杂的逻辑来创建将在构建器中分配的字段值。
建造者模式是正确的选择吗?构建器方法可以有更复杂的逻辑吗?我应该使用其他设计模式吗?
【问题讨论】:
-
IIRC,构建器模式的动机是避免具有许多参数和许多重载的构造函数的臃肿构造函数。我认为构建器方法的复杂性不一定需要限制为简单的分配。但是,我会将建造者与工厂进行比较,看看哪个更合适。
标签: design-patterns builder-pattern