Ver Mensaje Individual
  #1  
Antiguo 27-03-2009
noob noob is offline
Miembro
 
Registrado: sep 2008
Posts: 212
Reputación: 16
noob Va por buen camino
Una aplicación con varios estados

Hola, me gustaría diseñar de forma óptima una aplicación con varios estados, por ejemplo Autenticado, Conectado, Desconectado.

Tengo una clase manejador de conexión que "conoce" cuando la comunicación está establecida (está conectado a un servidor) o no establecida (desconectado de un servidor) por otro lado tengo otra clase que "conoce" cuando el cliente está autenticado.

Me gustaría saber cómo puedo implementar de forma óptima está aplicación con estados.

He pensado en usar el patrón de diseño del observador donde el formulario principal es el observador de la conexión y de la otra clase que "conoce" cuando el cliente está conectado, de modo que cuando exista un cambio de estado en el manejador de conexión en la otra clase se notifique al formulario haciendo que este se actualice como corresponda.

El problema que veo es que no se cómo diseñar las clases sujeto y observador, no se si tengo que hacer interfaces (clases totalmente diferidas) o vale sólo con llamar al Form1.Actualizar desde cada método que detecte un cambio de estado en los sujetos observados.

Tengo esto:

Código Delphi [-]
procedure TManejadorConexion.ComunicacionEstablecida;
begin
  ...
  Form1.Actualizar('Conectado');
  ...
end;

...

procedure TManejadorConexion.ComunicacionFinalizada;
begin
  ...
  Form1.Actualizar('Desconectado');
  ...
end;

...

procedure TOtraClase.ClienteAutentificado;
begin
  ...
  Form1.Actualizar('Autenticado');   
  ...
end;

...

procedure TForm1.Actualizar(Mensaje: String);
begin
  ... 
  ShowMessage(Mensaje);
  ...
end;

Pero creo que no estoy aplicando bien el patrón porque las clases no heredan de interfaces.

¿Me echáis un cable?

Saludos y gracias.
Responder Con Cita