Допустим, мы используем Java SE (без библиотек) и имеем следующую ситуацию. У нас есть класс: < /p>
public class DriverInfo {
private final int age;
public DriverInfo(int age) {
this.age = age;
}
// getter here
}
< /code>
В некоторых странах существует требование, которое вы можете ездить, если вам 18 лет. Другими словами - нам нужно иметь некоторую проверку для Age параметра. Что -то вроде: < /p>
if (age < 18) {
throw new IllegalArgumentException("Age is not valid!");
}
< /code>
Итак, мой вопрос - где должна быть эта проверка? Мои мысли следующие: < /p>
В конструктор добавьте if () < /strong>, описанный выше. Валидация будет работать, если конструктор будет вызван из нескольких мест в вашем коде. Я обеспокоен тем, что классовые конструкторы должны (ИМХО) не содержать никакой логики. Я прав? Это не стандартная Java, но я видел, как люди делают это. Что касается меня, то это не выглядит правильно, потому что мы добавляем логику в конструктор - который не выглядит для меня. < /Li>
Любой другой хороший способ, который я пропустил? Кто -нибудь может предложить наилучшую практику, как справиться с описанной ситуацией, обитаем?
Подробнее здесь: https://stackoverflow.com/questions/493 ... rs-on-java