Существует стороннее приложение, к базе данных которого обращается мое приложение. Его схема базы данных менялась несколько раз, поэтому сейчас существует около четырех разных схем базы данных (разные столбцы, разные условия выбора для одних и тех же объектов).
Например, существует сущность «Приложение». Для разных схем его можно получить по:
1) SELECT * FROM apps WHERE cell_number < 65535 AND page_number < 65535 AND top_number = 65535
2) SELECT * FROM menu_item WHERE cell_number > -1 AND page_number > -1 AND parent_id = -1 AND component_name IS NOT NULL
И так далее ...
Итак, какой шаблон проектирования (в Java) будет более удобным для поддержки нескольких схем баз данных разных версий одного и того же приложения? Конечно, он должен быть готов к будущим изменениям.