1) если применение паттерна порождает дублирование кода, то это значит, что паттерн выбран или применен неправильно
2) вам следует ориентироваться не на какой-то там абстрактный паттерн, а на конкретное представление модели для конкретной задачи из конкретной предметной области; это решение может оказаться паттерном, а может оказаться группой паттернов, а может там вообще GoF паттернов не будет.
3) в контексте данной задачи, проще всего декомпозировать её на две:
- определить формат схемы
- тривиально скрасить по заранее известной схеме
Т. е. речь о фабрике схем.
Речь о стратегии будет идти в том случае, если формат для каждого файла будет меняться в рантайме
И
при этом, в рантайме нет возможности ни отметить формат внутри файла, ни контролировать соблюдение инварианта формата.