我有一个公共构造函数,它需要一个参数(int age)来创建一个对象。我想检查传递的参数是否合法,例如年龄不能为负。如果它非法,则不要创建对象/实例。如果合法,没问题。
我只能想到一种方法来做到这一点 -
将构造函数设为私有。创建一个带有参数 (int age) 的静态方法来执行所有检查,如果您传递一个非法值,则返回 null。如果你传递一个合法的值,那么创建一个对象并返回它的引用。还有其他方法吗?也许来自构造函数本身?
编辑: 我想到了上述方法的一个问题。由于显而易见的原因,工厂方法/对象创建者方法只能是静态方法。如果工厂方法必须访问成员变量(进行一些检查)来创建对象会发生什么?然后,我们将被迫将该成员变量设为静态。这可能并非在所有情况下都可以。
是否有意义 ?