Добавление логики для конкретного типа в общем классе в JavaJAVA

Программисты JAVA общаются здесь
Anonymous
Добавление логики для конкретного типа в общем классе в Java

Сообщение Anonymous »

В Java какой лучший способ реализовать Common Logic , которая применима к конкретным типам в случае общих классов ? Каждый валидатор наследует от базового валидатора и использует Generics для проверки нескольких объектов. Обратитесь к примерам ниже для получения дополнительного контекста. Например, я хочу проверить возраст объектов, а затем изменить критичность (срочную, требует внимания, информации и т. Д.) Результата проверки. Утвержденные объекты разные и не имеют общего базового класса, чтобы получить возраст, например, < /p>
Не уверен, как лучше всего это сделать. Однако, поскольку это использует Generic, я не смогу получить возраст объекта на этом уровне, не зная, какой объект проверяется (и все они совершенно разные, без интерфейса или базового класса).
будет признателен любые входные данные или предложения.

Код: Выделить всё

public abstract class BaseValidator {

public BaseValidator(Function validatorInput) {
this.validatorInput = validatorInput;
}

public ValidationResult validate() {}
public addNotificationListener() {}
public removeNotificationListener() {}
....
}
duplicates validator

Код: Выделить всё

public class ValidateNoDuplicates extends BaseValidator {

public ValidateNoDuplicates(Function validatorInput) {
super(validatorInput);}

public ValidationResult validate() {
//Use validatorInput to validate
}
}
numberranges validator

Код: Выделить всё

public class ValidateNumberRanges extends BaseValidator {

public ValidateNumberRanges(Function validatorInput) {
super(validatorInput);}

public ValidationResult validate() {
//Use validatorInput to validate
}
}
factory
busschedulevalidator factory

Код: Выделить всё

public class BusScheduleValidatorFactory implements ScheduleValidatorFactory {

public ValidateNoDuplicates createNoDuplicateCheck() {
return new ValidateNoDuplicates();
}

public ValidateNumberRanges createRangeCheck() {
return new ValidateNumberRanges();
}

}
Flightschedulevalidator

Код: Выделить всё

public class FlightScheduleValidatorFactory implements ScheduleValidatorFactory {

public ValidateNoDuplicates createNoDuplicateCheck() {
return new ValidateNoDuplicates();
}

public ValidateNumberRanges createRangeCheck() {
return new ValidateNumberRanges();
}

}
Я хочу определить серьезность проверки на основе того, сколько лет автобус/Flightschedule. И я не хочу обновлять каждый валидатор с этой логикой.

Подробнее здесь: https://stackoverflow.com/questions/795 ... ss-in-java

Вернуться в «JAVA»