什么是PocoCapsule当前状态?

时间:2010-03-19 18:15:24

标签: c++ inversion-of-control poco

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

据我所知,有2-3种,也许更少的产品 实现IoC for C ++,可用和 PocoCapsule是其中最成熟的。

我在当前版本中看到了几个缺点(因为我看到它来自1.1) 谷歌代码):

  1. 没有单独的命名空间。
  2. 头文件必须在INCLUDE文件夹中正确 - 最好将它们放在子文件夹中。
  3. 生成工具依赖于Java。
  4. 默认情况下不会构建静态链接库。
  5. 如果我不需要重新配置功能,则无法从setup.xml生成源代码以进行编译并与我的应用程序链接。
  6. 有没有人有同样的想法?有人做某事 这个清单?开始工作有什么障碍,比如专利吗?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

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

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

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

我的其他地方的提示......

答案 2 :(得分:0)

我认为您可以通过在应用程序中重用QtCore库和moc-compiler来成功使用Qt元对象系统。

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

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