我有一个不可变对象,它也有它的构建器类。我需要一种方法来创建两个阶段的对象,其中第一阶段有一些参数,另一阶段有休息。有没有办法或框架来做到这一点?
答案 0 :(得分:1)
您可以将构建器传递到第二阶段,也可以将旧对象中的数据复制到新对象中。
良好的构建器实现将有一种复制对象的方法。
例如,使用lombok,您可以使用toBuilder
选项,该选项将从现有对象创建构建器,并允许您使用旧对象中的数据创建新对象。
答案 1 :(得分:0)
这是我的建议:
遵循Builder设计模式,每个阶段都有两个构建器。我认为这就足够了。我怀疑会有这样的框架。
答案 2 :(得分:0)
如果您遵循不可变对象的所有规则,则不能这样做
每new
只调用一次构造函数。
两种可能的方式是wrapping
或使用reflection
。