Какой шаблон проектирования следует использовать в этом случае использования?
Я работаю над приложением, в котором мне нужно написать пользовательскую проверку для некоторого объекта xmlbean, в основном, чтобы увидеть, есть ли поля с правильными значениями или нет. Теперь эти объекты генерируются из схемы diff. Я использую проверку, предоставляемую xmlbeans для схемы, но для этих объектов необходимо выполнить еще некоторые проверки бизнеса перед дальнейшей обработкой. Может кто-нибудь предложить какой-либо шаблон дизайна для этого варианта использования?
Спасибо
2 ответа
Определите свой собственный интерфейс валидатора:
interface Validator <T extends XmlBean> {
boolean validate(T bean);
}
Реализовав его для каждого класса, с которым вы имеете дело, вы можете предоставить фабричный класс для получения валидатора для каждого класса бинов, реализовав следующий интерфейс:
interface IValidatorFactory {
public <T extends XmlBean> Validator<T> getValidator(Class<T> clazz);
}
class ValidatorFactory implements IValidatorFactory {
private final Map<Class<? extends XmlBean>, Validator<? extends XmlBean>> map =
new HashMap<Class<? extends XmlBean>, Validator<? extends XmlBean>>();
@SuppressWarnings("unchecked")
@Override
public <T extends XmlBean> Validator<T> getValidator(Class<T> clazz) {
return (Validator<T>)map.get(clazz);
}
public <T extends XmlBean> void registerValidator(Class<T> clazz, Validator<T> validator) {
map.put(clazz, validator);
}
}
Вы можете добавить свои собственные хуки до и после установки к вашим сгенерированным классам XmlBeans. Чтобы добавить добавить крючки, вам нужно создать .xsdconfig
подать и предоставить некоторые preSet()
а также postSet()
статические методы, которые могут быть вызваны.
Например, смотрите:
https://www.ibm.com/developerworks/xml/library/x-xmlbeanse/?ca=dgr-eclipse-1
А также: