Я не очень часто использую шаблоны проектирования, кроме случайной фабрики и MVC, и хочу больше их использовать.
У меня под рукой конкретный случай, и я хотел бы узнать ваше мнение об использовании шаблонов проектирования в этом случае.
В моем приложении мне приходится конвертировать объекты довольно часто в разных ситуациях. Возможно, мне придется преобразовать Hibernate POJO в DTO, потому что я использую GWT, а Hibernate POJO не сериализуемы и не могут быть отправлены через линию.
В другой ситуации мне может понадобиться преобразовать объекты Java в SolrInputDocument для индексации с помощью Solr.
Я хотел бы знать, должен ли я использовать шаблон дизайна для этого. Кажется, что «преобразование объекта» - это общая задача, которая может быть гибко или абстрактно обработана шаблоном, но я не совсем понимаю, как это сделать.
Без шаблонов я бы просто создал отдельный класс для каждого типа преобразования, например CourseToSolrInputDocument (курс - это объект Hibernate в моем приложении). Или CourseToCourseDTO. Каждый из этих классов преобразования может иметь один статический метод, convert()
который принимает исходный объект в качестве входных данных и возвращает выходной объект.
Но это не совсем закономерность? Итак, я начал с чего-то с дженериков и создал этот класс, который реализует интерфейс Converter. Но как-то глупо создавать общий интерфейс, и я не вижу в этом никакого преимущества, кроме как поздравить себя с использованием обобщений.
public class CourseToSolrInputDocument implements Converter<Course, SolrInputDocument> {
@Override
public void convert(Course source, SolrInputDocument destination) {
//To change body of implemented methods use File | Settings | File Templates.
}
}
Итак, реальный вопрос здесь заключается в следующем: существует ли шаблон, который применяется к преобразованию универсальных объектов, и каков будет ваш подход и каковы преимущества по сравнению с использованием только подхода типа «класс на преобразование»?