Представьте себе стратегию, при которой вам могут потребоваться парсеры для нескольких форматов конфигурационного файла, например, INI, XML и YAML. Их анализ приведет к появлению экземпляра общего класса, например Config_Data.
Я думаю, что, поскольку синтаксический анализатор имеет очень простой мандат, и нет состояния, которое я вижу, его лучше всего реализовать как статический класс, поэтому вы можете использовать следующее:
Parser_Ini::parse(...);
Parser_Xml::parse(...);
...
Это не совсем корректно для меня, поскольку, конечно, эти статические классы не могут реализовывать интерфейс и т. Д., Но, похоже, они имеют смысл.
Мне было бы интересно узнать ваши мысли по этому вопросу:).
Спасибо,
Джеймс