Паттерн программирования «Динамические Стратегии»
Пользователь вводит какие-либо данные, либо в виде XML, JSON, либо в виде массива. А нам нужно распарсить это в форматированный JSON.
И да, есть еще одно требование: нужно, чтобы эти стратегии были расширяемыми. Разработчики должны иметь возможность добавлять свои собственные стратегии для работы с другими типами входных данных: YAML, интерфейсами, итерируемыми объектами и всем, что им может понадобиться.
Давайте взглянем на классическое решение и его проблемы. И попробуем решить эти проблемы.
статья на английском языке
https://stitcher.io/blog/strategies