Задать вопрос
on1k
@on1k

Какой паттерн использовать?

Здравствуйте!
Есть пулл xml файлов за n период. В течении этого периода выходили различные версии и структура файлов постепенно менялась. Собственно задача спарсить все их в единую сущность.
Пока что я подумаю, чтобы реализовать это паттерном Стратегия или Шаблонный метод. В голове прикинул, в любом случае выходит куча повторного кода. Или это норма? То есть, есть класс, который принимает аргументом номер версии и смотря на нее, он реализует соответствующие алгоритмы, заточенные под нее.
А может есть более рациональный подход под эту задачу о котором я не знаю?
  • Вопрос задан
  • 251 просмотр
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
@majstar_Zubr
C++, C#, gamedev
1) если применение паттерна порождает дублирование кода, то это значит, что паттерн выбран или применен неправильно

2) вам следует ориентироваться не на какой-то там абстрактный паттерн, а на конкретное представление модели для конкретной задачи из конкретной предметной области; это решение может оказаться паттерном, а может оказаться группой паттернов, а может там вообще GoF паттернов не будет.

3) в контексте данной задачи, проще всего декомпозировать её на две:
- определить формат схемы
- тривиально скрасить по заранее известной схеме

Т. е. речь о фабрике схем.

Речь о стратегии будет идти в том случае, если формат для каждого файла будет меняться в рантайме

И

при этом, в рантайме нет возможности ни отметить формат внутри файла, ни контролировать соблюдение инварианта формата.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы