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

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

Сообщение Anonymous »

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

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

    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();
}

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

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

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