martes, diciembre 12, 2006

Uso del modelo de eventos (Observer) en C#.NET - Using events model in C#.NET

Este es un ejemplo muy simple del uso del modelo de eventos (modelo muy parecido al Observer u Observador o también llamado de suscripción pública) en C#.NET.

El elemento que lanza los eventos (observable) deberá incluir el siguiente código:
//declaramos el evento
public event PalabraErroneaEvent OnPalabraErronea;

//declaramos el tipo de manejador asociado al evento
public delegate void PalabraErroneaEvent(object sender, PalabraErroneaArgs e);

//suscipción de metodos al evento
public void addPalabraErroneaListener(IPalabraErroneaListener l){
OnPalabraErronea += new PalabraErroneaEvent(l.newEvent);
}

//lanzamiento del evento
public void notify(PalabraErroneaArgs args){
OnPalabraErronea(this, args);
}

El elemento que reciba los eventos (listener u observer), debe incluir lo siguiente:

Para registrarse debe implementar una interfaz que incluye un método que será usado por la clase que envíe los eventos para añadir un nuevo listener (en este caso el método es newEvent).
public interface IPalabraErroneaListener{
void newEvent(object sender, PalabraErroneaArgs e);
}

Una vez que se implemente la interfaz, nos registraremos en el lanzador del evento usando el método que nos ofrece para ello.
//nos suscribimos
nombre_del_lanzador.addPalabraErroneaListener(this);

Para recibir y manejar los eventos implementa el método anteriormente descrito.
public void newEvent(object sender, PalabraErroneaArgs e) {
@todo
}

1 comentario:

pedromateo dijo...

Lo siento mucho pero el código sale cortado.
Intentaré solucionarlo lo antes posible (ahora estamos en mala época XD).

Un saludo.