Я работаю над проектом веб-приложения, который требует от меня рефакторинга функции загрузки файлов. Наша функция загрузки файлов поддерживает несколько источников загрузки файлов, таких как git repo, nexus URL, zip-файлы, и мы также хотим поддерживать больше, таких как поневоле в будущем. В текущей реализации приложение имеет несколько конечных точек для обработки различных методов, таких как getNexusFile()
, getGitFile()
, getZipFile()
; в каждом методе есть реализация для извлечения файлов из указанного источника.
Моя идея состоит в том, чтобы объединить все эти методы в один метод под названием getUploadFile()
с помощью шаблона стратегии. Как и в шаблоне «Стратегия», алгоритмы можно было выбирать во время выполнения, поэтому файлы, загруженные из разных источников, могли обрабатываться безразлично после того, как я укажу правильную стратегию. Для каждого источника я создам стратегию.
У меня вопрос: является ли это хорошей практикой шаблона проектирования? Есть ли лучший подход к моделированию этого вопроса?