El patrón de plantilla se utiliza comúnmente en la implementación de eventos dotnet para establecer precondiciones y responder a las postcondiciones.El caso degenerado es
void FireMyEvent(object sender, EventArgs e)
{
if (_myevent != null) _myEvent(sender, e);
}
en el que se verifica la condición previa. En este caso, la condición previa es que los manipuladores solo se puedan invocar cuando se haya vinculado al menos uno. (Por favor, no me diga que debo invocar a los manipuladores de forma asíncrona. Lo sé. Yo ilustro Modelo del modelo, no la técnica de programación asíncrona.)
Una condición previa más elaborado podría implicar la comprobación de una propiedad que gobierna el disparo de eventos.
Modelo del modelo también se utiliza comúnmente para implementar enlaces, por ejemplo
public virtual void BeforeOpenFile(string filepath)
{
//stub
}
public virtual void AfterOpenFile(string filepath)
{
//stub
}
public sealed void OpenFile(string filepath)
{
BeforeOpenFile(filepath); //do user customisable pre-open bits
//do standard bits here
AfterOpenFile(filepath); //do user customisable post-open bits
}
¿dónde se escribe el evento PublishData? –
Me refiero a PublishDataEventHander, ¿qué debería pasar en ese evento donde está escrito? –