Не уверен, как лучше всего это сделать. Однако, поскольку это использует Generic, я не смогу получить возраст объекта на этом уровне, не зная, какой объект проверяется (и все они совершенно разные, без интерфейса или базового класса).
будет признателен любые входные данные или предложения.
Код: Выделить всё
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