Паттерн программирования «Динамические Стратегии»

Пользователь вводит какие-либо данные, либо в виде XML, JSON, либо в виде массива. А нам нужно распарсить это в форматированный JSON.

И да, есть еще одно требование: нужно, чтобы эти стратегии были расширяемыми. Разработчики должны иметь возможность добавлять свои собственные стратегии для работы с другими типами входных данных: YAML, интерфейсами, итерируемыми объектами и всем, что им может понадобиться.

Давайте взглянем на классическое решение и его проблемы. И попробуем решить эти проблемы.

статья на английском языке

https://stitcher.io/blog/strategies