Предотвращение создания экземпляра класса, если аргумент конструктора недопустим?

У меня есть публичный конструктор, который принимает параметр (int age) для создания объекта. Я хочу проверить, является ли переданный параметр допустимым или нет, например, возраст не может быть отрицательным. Если это незаконно, тогда несоздать объект / экземпляр. Если законно, нет проблем.

Я могу думать только об одном способе сделать это -

Сделайте конструктор приватным. Создайте статический метод с параметром (int age), чтобы выполнить всю проверку и вернуть нулевое значение, если вы передадите ему недопустимое значение. Если вы передадите ему допустимое значение, создайте объект и верните его ссылку. Есть ли другой способ сделать это? Может быть, изнутри самого конструктора?

РЕДАКТИРОВАТЬ : Я думал об одной проблеме с вышеупомянутым методом. Фабричный метод / метод создателя объекта может быть статическим методом только по очевидным причинам. Что произойдет, если фабричный метод должен получить доступ к переменной-члену(сделать некоторую проверку) создать объект? Затем мы будем вынуждены сделать эту переменную-член статической. Это не может быть хорошо во всех случаях.

Имеет ли это смысл ?

Ответы на вопрос(4)

Ваш ответ на вопрос