Давайте сначала уточнить, что нет ничего плохого в методах void
и нет абсолютно ничего плохого в том, что классы имеют только void
методы.
Сам вопрос о том, имеют ли классы только void
методов, которых следует избегать, неправильно ставить.Вопрос, который вы должны задать себе относительно своего плана или вашего class
, выглядит следующим образом:
Соответствует ли этот класс моим требованиям?
Еслиответ - да, тогда не интересно, имеет ли он только метод void
или нет.Если ответ «нет», вам нужно задать себе следующий вопрос:
Как бы выглядел этот класс, если бы он отвечал моим требованиям, и в чем разница между тем, каким он должен быть, и тем, чем он должен быть?это так?
И поскольку теперь вы задаете хорошие вопросы, у вас будет больше шансов найти хорошие ответы.
Я понимаю, что вам нужно interface
дляваша проверка и вы хотите реализовать хотя бы метод.Это означает, что вам нужно от abstract class
до implement
вашего interface
.
public abstract class AbstractValidator implements Validator {
public void validate (Condition condition1, Condition condition2) {
if (conditionNotMet(condition1, condition2)) {
throw new SpecificException();
}
}
}
, а затем для каждого конкретного валидатора наследовать от AbstractValidator
.Кроме того, документ на Validator
, что он не предназначен для реализации ничем иным, чем AbstractValidator
, так что другие люди, которые могут найти ваш interface
, не сделают ошибку, реализовав его отдельно.
https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html