Я работаю над кодом миграции базы данных на Java. Я также использую шаблон фабрики, поэтому я могу использовать различные виды баз данных. И каждый вид базы данных, которую я использую, реализует общий интерфейс.
То, что я хотел бы сделать, - это выполнить проверку миграции, которая является внутренней по отношению к классу и автоматически запускает некоторый код обновления схемы базы данных. Фактическое обновление довольно простое (я проверяю версию схемы в таблице и сравниваю с константой в моем приложении, чтобы решить, переносить или нет, и между какими версиями схемы).
Чтобы сделать это автоматическим, я думал, что тест должен жить внутри (или вызываться из) конструктора. Хорошо, достаточно справедливо, это достаточно просто. Моя проблема в том, что я не хочу, чтобы тест выполнялся каждый раз, когда я создаю экземпляр объекта базы данных (он выполняет запрос, поэтому запуск его в каждой конструкции неэффективен). Так может быть это должен быть статический метод класса? Я предполагаю, что мой вопрос, что является хорошим шаблоном дизайна для этого типа проблемы? Должен быть простой способ обеспечить выполнение теста миграции только в том случае, если ИЛИ является суперэффективным.