2010-03-19 98 views
10

PocoCapsule当前状态是什么?它在不断演变吗?它是否与其他产品分开 ? 关于IoC for C++的整个想法是什么?如果PocoCapsule不是 不断发展,是因为IoC被认为对C++没有用,不安全, 其他模式出现或者其他?什么是PocoCapsule当前状态?

据我了解有2-3个,也许一些更多的产品,也 实施国际奥委会C++,可与 PocoCapsule是最成熟的人。

我看到在当前版本的几个缺点(我看到它的1.1 谷歌代码):

  1. 没有单独的命名空间。
  2. 头文件需要在INCLUDE文件夹中正确 - 最好将它们放在子文件夹中。
  3. 生成工具依赖于Java。
  4. 默认情况下不会创建静态链接库。
  5. 如果我不需要重新配置功能,无法从setup.xml生成源代码进行编译并链接到我的应用程序。

有没有人有同样的想法?有没有人在 这个清单上工作?是否有任何障碍开始工作,如专利?

回答

3

我通过电子邮件发送了柯金(维护者),他的回复是,截至2011年7月14日,它并没有处于当前积极的发展状态。他没有给出理由。

2

我一直在寻找这个我自己一段时间了,并且认识到在C++中没有好的IoC容器。实施这个有很多问题。获得类似C#IoC容器(Castle Windsor,Unity等)是遥不可及的。我的猜测是,如果你需要这样的东西,你不会做C++。如果你使用C++,你可以自己制作或使用单身工厂(小玩笑);)

一个简单的捷径是使用Qt的QML。它是为声明式UI构建的,但可用于构建任何基于QObject的树。

另一个好看的是CORBA Systems for C++,它们可能有一些你需要的东西。

只是我的提示其他地方看看......

+0

+1提到QML作为可能的候选人。 – 2013-09-08 05:41:08

0

我认为你可以成功使用Qt元对象系统通过重用QtCore库和建设部编译器在应用程序中。

使用元对象系统,您可以通过调用QMetaObject::invokeMethod()的任何模块接口方法创建完全隔离的模块。

而且所有工作都没有QCoreApplication对象实例!将模块定义为QObject的子类,提供Q_OBJECT宏并用Q_INVOKABLE标记所有接口方法(当然,您应该在构建步骤中添加moc-compiler)。