Имеется набор парсеров текстовых форматов: XmlParser и CsvParser. Сама реализация парсеров сейчас не имеет значения.
Есть класс StringHandler - который имеет метод parseString(string $format, string $string)
Перепишите код таким образом, чтобы этот код можно было свободно расширять, добавлять новые типы парсеров, не модифицируя в дальнейшем класс StringHandler
Руководствуйтесь принципами разработки которые знаете.
Решение можно оформить в виде gist'а Сделайте форк и в нём измените код
Функция parseString
отвечает не только за сам парсниг, но и за определение парсера
Даже если не брать во внимание нарушение Single responsibility
, то при создании нового парсера нам бы пришлось модифицировать функцию parse и добавлять новый case
Функция parseString
зависит не от абстрации, а от конкретного парсера
Добавить интерфейс, от которого будут наследваться парсеры и передать интерфейс в StringHandler