Я теперь хочу добавить логику, которая специфична для объектов, подтверждающих все валидатор. Например, я хотел бы проверить возраст объектов, а затем изменить критичность (срочную, нуждающуюся в внимании, информации и т. Д.) Результата проверки. (Примечание. Объекты, являющиеся проверками, различны и не имеют общего базового класса, чтобы получить возраст, например) < /p>
Не уверен, что лучше всего этого сделать. Однако, поскольку это использует Generic, я не смогу получить возраст объекта на этом уровне, не зная, какой объект проверяется (и все они совершенно разные, без интерфейса или базового класса). < /P>
будет ценить любые входные данные или предложения. Заранее спасибо!
Код: Выделить всё
public abstract class BaseValidator {
public BaseValidator(Function validatorInput) {
this.validatorInput = validatorInput;
}
public ValidationResult validate() {}
public addNotificationListener() {}
public removeNotificationListener() {}
....
}
Код: Выделить всё
public class ValidateNoDuplicates extends BaseValidator {
public ValidateNoDuplicates(Function validatorInput) {
super(validatorInput);}
public ValidationResult validate() {
//Use validatorInput to validate
}
}
Код: Выделить всё
public class ValidateNumberRanges extends BaseValidator {
public ValidateNumberRanges(Function validatorInput) {
super(validatorInput);}
public ValidationResult validate() {
//Use validatorInput to validate
}
}
busschedulevalidator factory
Код: Выделить всё
public class BusScheduleValidatorFactory implements ScheduleValidatorFactory {
public ValidateNoDuplicates createNoDuplicateCheck() {
return new ValidateNoDuplicates();
}
public ValidateNumberRanges createRangeCheck() {
return new ValidateNumberRanges();
}
}
Код: Выделить всё
public class FlightScheduleValidatorFactory implements ScheduleValidatorFactory {
public ValidateNoDuplicates createNoDuplicateCheck() {
return new ValidateNoDuplicates();
}
public ValidateNumberRanges createRangeCheck() {
return new ValidateNumberRanges();
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... ss-in-java