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