在《Effective Java(第2版)》的第2条中,作者提到了在使用构建器时对参数施加不变性的相关内容:
“非常重要的一点是,在从构建器复制参数到对象之后,必须检查它们,并且必须在对象字段而不是构建器字段上进行检查(第39条)。如果违反了任何不变式,则构建方法应该抛出IllegalStateException异常(第60条)。”
这是否意味着在构建方法创建目标对象后,应将其传递给验证例程以进行所需的验证?
此外,有人可以解释一下背后的原因吗?
“非常重要的一点是,在从构建器复制参数到对象之后,必须检查它们,并且必须在对象字段而不是构建器字段上进行检查(第39条)。如果违反了任何不变式,则构建方法应该抛出IllegalStateException异常(第60条)。”
这是否意味着在构建方法创建目标对象后,应将其传递给验证例程以进行所需的验证?
此外,有人可以解释一下背后的原因吗?