Когда можно впрыскивать инжектор? - PullRequest
0 голосов
/ 16 мая 2011

Если вы посмотрите на библиотеку, над которой я работал для внедрения зависимостей в C ++ , я недавно добавил пример , который имитирует то, что я создал для реального проекта: возможность напрямую вводить конфигурацию приложения.

Все это прекрасно работает, поскольку конструктор просто запрашивает тип ConfigItem , и он волшебным образом доставляется.

Проблема возникает, когда мне нужно получить доступ ко всем из них одновременно (скажем, для диалога конфигурации).

Глупое решение, которое я придумал, состояло в том, чтобы с помощью препроцессора сгенерировать класс, который получает все элементы конфигурации в конструкторе, как показано здесь .

Эта проблема была бы "хорошо" решена, если бы я мог внедрить инжектор, поскольку мне нужно было бы только сгенерировать код для сбора всех экземпляров ConfigItem, как показано здесь .

Обратите внимание, что все элементы ConfigItems находятся в пределах одной области.

Надеюсь, этот вопрос имеет смысл: как бы вы это сделали?

1 Ответ

0 голосов
/ 16 мая 2011

Похоже, вы заново изобрели шаблон локатора службы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...