on1k
@on1k

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

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

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

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

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

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

И

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

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

Войти через центр авторизации
Похожие вопросы