2010-03-19 32 views
10

¿Cuál es el estado actual de PocoCapsule? ¿Está evolucionando? ¿Se ha bifurcado con algún otro producto? ¿Qué tiene que ver la idea general de IoC para C++? Si PocoCapsule no está evolucionando , ¿es porque IoC se consideró no útil para C++, inseguro, aparecieron otros patrones o algo más?¿Qué es el estado actual de PocoCapsule?

Por lo que tengo entendido, hay 2-3, tal vez algunos productos más, que implementan IoC para C++, disponible y PocoCapsule es el más maduro de ellos.

Veo varias desventajas en la versión actual (como veo que es 1.1 de código de Google):

  1. Sin espacio de nombres separado.
  2. Los archivos de encabezado deben estar en la carpeta INCLUDE, mejor colocarlos en la subcarpeta.
  3. Las herramientas de generación dependen de Java.
  4. Ninguna biblioteca de enlaces estáticos se crea de forma predeterminada.
  5. No se puede generar el código fuente de setup.xml para la compilación y el enlace con mi aplicación si no necesito la función de reconfiguración.

¿Alguien tiene las mismas ideas? ¿Alguien trabaja en algo de esta lista? ¿Hay barreras para comenzar a trabajar, como las patentes?

Respuesta

3

Envié un correo electrónico a Ke Jin (mantenedor) y su respuesta fue que no está en desarrollo actual y activo desde el 14 de julio de 2011. No dio ninguna razón.

2

Hace tiempo que estoy buscando esto y me di cuenta de que no hay buenos Contenedores de IoC en C++. Hay muchos problemas para implementar esto. Obtener algo como C# IoC Containers (Castle Windsor, Unity, etc.) está fuera de su alcance. Supongo que si necesita algo como esto, no hace C++. Y si lo hace C++, tira el suyo o utiliza fábricas de singleton (pequeña broma);)

Un atajo fácil es utilizar Qt's QML. Fue construido para UI declarativas, pero se puede usar para construir cualquier árbol basado en QObject.

Otro buen aspecto son los Sistemas CORBA para C++, que pueden tener algunas de las cosas que necesita.

Sólo mis sugerencias para otros lugares en busca ...

+0

+1 por mencionar QML como posible candidato. –

0

Creo que se puede utilizar con éxito el sistema meta objeto Qt mediante la reutilización de la biblioteca y QtCore moc-compilador en su aplicación.

Con el sistema de metaobjetos, puede crear módulos totalmente aislados llamando a cualquier método de la interfaz del módulo a través del QMetaObject::invokeMethod().

¡Y todo funcionará sin la instancia del objeto QCoreApplication! Defina sus módulos como subclases de QObject, proporcione la macro Q_OBJECT y marque todos los métodos de interfaz con Q_INVOKABLE (por supuesto, debe agregar compilador de moc como paso de compilación).

Cuestiones relacionadas