如果我有一个需要多个(4 个以上参数)的不可变对象(immutable对象)的构造函数,那么使用一个包含所有必需参数的构造函数是否是正确的方法?
我觉得这会成为 Builder 模式的候选者,但我也想回避它,因为参数是必需的,当您需要挑选时,Builder 似乎更合适。
我心目中的例子是一个一旦创建就不会改变的模型对象。
最佳答案
如果你想创建一个不可变对象(immutable对象),你必须提供一个包含所有必需字段的构造函数。
您不能部分设置状态,因为稍后您必须添加一些“setter”的概念,这将根据定义增加可变性。
构建器模式实际上是关于部分对象的构建。
关于java - 具有许多必需参数的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28426051/