Ответ 1
Я отправил электронное письмо Ke Jin (сопровождающему), и его ответ был тот, что он не находится в текущем активном развитии с 14 июля 2011 года. Он не дал причины.
Что такое PocoCapsule текущий статус? Разве это развивается? Развернуто ли оно с другим продуктом? Что такое идея IoC для С++? Если PocoCapsule не эволюция, это потому, что IoC считался не полезным для С++, небезопасным, появились другие образцы или что-то еще?
Насколько я понимаю, есть 2-3, может быть, несколько продуктов, которые реализовать IoC для С++, доступных и PocoCapsule является наиболее зрелым из них.
Я вижу несколько недостатков в текущей версии (как я вижу это 1.1 из google code):
Есть ли у кого-то одни мысли? Кто-нибудь работает над чем-то этот список? Существуют ли какие-либо препятствия для начала работы, такие как патенты?
Я отправил электронное письмо Ke Jin (сопровождающему), и его ответ был тот, что он не находится в текущем активном развитии с 14 июля 2011 года. Он не дал причины.
Я искал это сам уже некоторое время и понял, что в С++ нет хороших контейнеров IoC. Есть много проблем, связанных с этим. Получение чего-то вроде контейнеров С# IoC (Castle Windsor, Unity и т.д.) Недостижимо. Я предполагаю, что если вам требуется что-то подобное, вы не делаете С++. И если вы делаете С++, вы откатываете свои собственные или используете одноэлементные заводы (маленькая шутка);)
Простым ярлыком является использование QML QML. Он был создан для декларативных пользовательских интерфейсов, но может использоваться для построения любого дерева, основанного на QObject.
Еще один хороший взгляд - CORBA Systems для С++, у них могут быть некоторые вещи, которые вам нужны.
Просто мои подсказки для других мест, чтобы посмотреть...
Я думаю, что вы можете успешно использовать систему метаобъектов Qt, повторно используя библиотеку QtCore и moc-компилятор в своем приложении.
С помощью системы метаобъектов вы можете создавать полностью изолированные модули, вызывая любой метод интерфейса модуля через QMetaObject:: invokeMethod().
И все будет работать без экземпляра объекта QCoreApplication! Определите свои модули как подклассы QObject, предоставите макрос Q_OBJECT и пометьте все методы интерфейса с помощью Q_INVOKABLE (конечно, вы должны добавить moc-компилятор в качестве шага сборки).