Моя ситуация, по сути, такова: у меня есть класс с именем Foo, который имеет зависимости A и B, все из которых являются внутренними для библиотеки. Экземпляры Foo будут создаваться пользователем библиотеки, и они не должны требовать знания зависимостей.
Внутренне, конечно, я хотел бы, чтобы Foo оставался отделенным от конкретных реализаций A и B. Я рассмотрел простой статический фабричный класс, однако необходимо будет как-то настроить его для зависимостей (скажем, Factory :: $ _ staticAttr = x) и это кажется неправильным, так как это по сути означает, что у моего статического класса есть состояние.
Я также думал о каком-то XML или ином сконфигурированном контейнере для инъекций зависимостей, однако затем возникает вопрос о том, как сделать экземпляр сконфигурированного DIC доступным, не создавая беспорядка, такого как наличие в объекте реестра.
Я стремлюсь к какому-то тривиальному методу для конечного пользователя, чтобы сгенерировать экземпляр Foo со всем введенным, сохраняя при этом все детали зависимостей и т. Д., Скрытые в библиотеке.
Я перечитал, и решение пока не показалось мне очевидным, поэтому я буду признателен за любую информацию:).