Pregunta

Si usted tiene una plataforma común Eclipse / OSGi código sobre el que se construye diversos productos se puede / debe heredar activadores del código común

por ejemplo.

org.test.common.PluginActivator
org.test.common.ui.UIPluginActivator

org.test.product1.Product1PluginActivator
org.test.product1.ui.Product1UIPluginActivator

org.test.product2.Product2PluginActivator
org.test.product2.ui.Product2PluginActivator

Quiero tener todos los activadores de interfaz de usuario que heredan de la común, y lo mismo para los activadores no ui. Los métodos de arranque serían todos de llamar a super ... Sin embargo, me pregunto si esto es malo osgi práctica / manojo o podría causar problemas.

¿Alguien tiene alguna idea / opiniones sobre esto?

¿Fue útil?

Solución

Si el niño no puede funcionar sin paquete de los padres de todos modos (es decir, tiene una dependencia funcional en él), no se va a añadir ningún acoplamiento adicional al hacer el activador herede de ella.

me guardaría de heredar de un antepasado común a menos que el plug-in ya había razón para hacerlo ya que estás forzando el paquete para ser cargado incluso si sólo está heredando una constante.

Otros consejos

Estoy asumiendo que estás haciendo Eclipse RCP porque de lo contrario me gustaría recomendar la primavera DM (o iPOJO, Google Guice con Peaberry o Servicios declarativa, ...). De esa manera usted nunca tiene que escribir otro activador del paquete de nuevo.

Por otro lado, mi equipo fue con el BundleActivator abstracta común para nuestros paquetes relacionados con la RCP. Para mí, tener el paquete actual activadores en un haz central (s) aumenta de acoplamiento.

no quiero, no me habría que considerar un abuso de subclases en general (y no estrictamente desde el punto de vista de OSGi).

En mi humilde opinión el mejor es mantener la propia clase activador mínima (como en el código y como en la huella de rendimiento en tiempo de ejecución), delegando principalmente trabajo real -si Any-a clases obreras. si usted tiene una subclase nada, se puede hacer eso con las clases obreras.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top