Ver Mensaje Individual
  #7  
Antiguo 11-03-2011
LoPiTaL LoPiTaL is offline
Miembro
 
Registrado: abr 2009
Posts: 168
Reputación: 16
LoPiTaL Va por buen camino
Gracias a todos por las respuestas.

Neftali:
Cita:
El primer problema es saber a qué te refieres con "comunicación"
Con esto me refiero a que:
- El maestro deberá inicializar con unos determinados valores a los esclavos.
- Deberá leer sus datos.
- Los esclavos no necesitan saber nada de los maestros salvo lo que está en el paquete principal.

Cita:
La forma directa pueder ser utilizando RTTI
No me gustaría usar RTTI, por aquello que hace la app lenta.

Cita:
Utilizar una estructura en el package Base
Eso es lo que comentaba que es lo único que se me había ocurrido. Creas un record de esta estructura, lo inicializas y se lo pasas al constructor del esclavo y ya se apañará.
Esta es la solución que por ahora más me gusta...
Su única pega es que si en versiones posteriores introduces cambios en esta estructura, debería actualizar toda la app y no sólo el package.

Cita:
Cada package que cargo añade a esa lista (accesible por todos los packages) su objeto definición
¿Puedes explicar un poco más esto? ¿A qué te refieres con "objeto definición"? ¿Por ejemplo a un array de strings del tipo 'NombreVar=Valor'? Si es así, tal vez podría utilizar estructuras tipo XML para conocer el estado de los esclavos o inicializarlos... (se me acaba de ocurrir, mañana lo estudiaré más tranquilamente esto)

Román:
Cita:
El problema, hasta donde veo, es que sus clases "maestras" hacen uso de clases "esclavas" específicas por lo que el paquete base tendría que incluir a todas ellas
Sí, exactamente ese es el problema que tengo. Las clases esclavas comparten métodos genéricos a todas ellas, por tanto sí puedo hacer herencia / polimorfismo. Pero hay determinadas propiedades que son exclusivas de determinados esclavos. Esto es lo que no consigo resolver.

Cita:
podría tratarse de un diseño de clases no del todo correcto
No descarto que sea este el problema, pero como he dicho antes, los esclavos comparten métodos y propiedades accesibles a través del esclavo padre, pero hay cosas que dependen de lo que el esclavo haga.


Después de todo esto, me está pareciendo cada vez más simple dejar los esclavos que se linken de forma estática en todos los packages de los maestros que los necesiten, y cuando haga una actualización en cualquier package de algún esclavo, actualizar también todos los packages de maestros que dependan de él...

Gracias por las respuestas,
Un saludo,
LoPiTaL
Responder Con Cita