オブジェクトを作成するためにパラメーター(intage)を受け取るパブリックコンストラクターがあります。渡されたパラメータが有効かどうかを確認したいのですが、たとえば、年齢を負にすることはできません。違法な場合は、オブジェクト/インスタンスを作成しないでください。合法であれば問題ありません。
私はこれを行うための1つの方法しか考えられません-
コンストラクターをプライベートにします。パラメータ(int age)を使用して静的メソッドを作成し、すべてのチェックを実行し、不正な値を渡した場合はnullを返します。正当な値を渡す場合は、オブジェクトを作成してその参照を返します。それを行う他の方法はありますか?たぶんコンストラクター自体の内部から?
編集: 私は上記の方法で1つの問題を考えました。ファクトリメソッド/オブジェクトクリエーターメソッドは、明らかな理由から静的メソッドにしかなり得ません。ファクトリメソッドがオブジェクトを作成するために(チェックを行うために)メンバー変数にアクセスする必要がある場合はどうなりますか?次に、そのメンバー変数を静的にすることを余儀なくされます。これはすべての場合に問題がない場合があります。
それは意味がありますか?