Я не використовую шаблони дизайну дуже часто, окрім випадкових заводських та MVC, і я хочу почати використовувати їх більше.
У мене є конкретний випадок, що я хотів би отримати вашу думку щодо використання моделей дизайну в даному випадку.
У своїй програмі мені доводиться перетворювати об'єкти досить часто в різних ситуаціях. Можливо, мені доведеться перетворити сплячу POJO в DTO, оскільки я використовую GWT та Hibernate POJO, не піддаються серіалізації та не можуть бути надіслані по лінії.
В іншій ситуації мені може знадобитися перетворити об’єкти Java в SolrInputDocument для індексації Solr.
Я хотів би знати, чи варто використовувати для цього шаблон дизайну. Здається, що "конвертація об'єктів" - це загальне завдання, з яким можна обробляти гнучко / абстрактно за шаблоном, але я не дуже розумію як.
Без шаблонів я просто створив би окремий клас для кожного типу перетворення, наприклад, CourseToSolrInputDocument (Курс - це сплячий об'єкт у моїй програмі). Або 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.
}
}
Отже, справжнє питання полягає в тому: чи існує закономірність, яка застосовується до загальної конвертації об'єктів, і який би був ваш підхід та які переваги перед використанням лише підходу типу клас за конверсію?