Ver Mensaje Individual
  #6  
Antiguo 09-02-2007
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Pues obviamente tienes es un problema de organizacion.

Si un problema es demasiado dificil de resolver, hay que replantear el problema hasta que sea facil.

(Tengo en la punta de la lengua que eso es un patron de diseño pero solo me acuerdo de nombre el singleton y el factory )

El problema es que llamas a las cosas padres e hijos. Y como ves, no tenes una herarquia desendente.

Lo que tienes que hacer es llamar a las cosas controladoras, ruteadoras y ejecutoras. O Administradores de flujo, pasos de trabajo. O algo asi (te digo en serio, se me olvidan los nombres academicos de estas cosas!)

En fin... La cosa seria tener una clase Administradora. Lo que haria es simplemente manejar el paso de los flujos de trabajo. Algo como (me mata que no hayas puesto el ejemplo de lo que tu querias hacer en ves de seguir con el ejemplo de los thread!):

TAdminProcesoEnruedado:
procedure Init;
Event Progreso;
ListaAcciones:UnaLista;

Luego La que ejecuta:

TAccionSencilla
procedure Execute(Datos....);

Luego tenes que pensar como fabricarias las cosas al estilo de un diagrama de flujo: Que pasos hay que ejecutar? Cuales SI son suceptibles de jerarquias?

Ñuño tiene una buena idea, usar Interfaces. Pero necesitas organizar las clases.

En fin, de purra intuicion, necesitas unas 3 clases para hacer el trabajo, y seria algo similar a TActionList y TAction.

Segundo, debes buscar eliminar el referenciado fuerte. En vez de pasar las referencias de los objetos pasa parametros. Mientas mas desacoplados esten las cosas mejor.
O si posteas exactamente que es lo que tienes seguro podemos armar una solucione mejor que toda la incoherencia arriba citada !
__________________
El malabarista.
Responder Con Cita