Event (computing) - Delegate Event Model

A very common and very "programmer-friendly" variant is the delegate event model, which is provided by the most popular graphic frameworks.

This model is based on three entities:

  • a control, which is the event source,
  • consumers, also called listeners, that receive the events from the source,
  • interfaces (in the broader meaning of the term) that describe the protocol by which every event is to be communicated.

Furthermore, the model requires that

  • every listener must implement the interface for the event it wants to listen to
  • every listener must register with the source to declare its desire to listen to some particular event
  • every time the source generates an event, it communicates it to the registered listeners, following the protocol of the interface.

C# uses events as special delegates that can only be fired by the class that declares it. This allows for better abstraction. Here's an example:

delegate void Notifier (string sender); class Model { public event Notifier notifyViews; public void Change { ... notifyViews("Model"); } } class View1 { public View1(Model m) { m.notifyViews += new Notifier(this.Update1); } void Update1(string sender) { Console.WriteLine(sender + " was changed during update"); } } class View2 { public View2(Model m) { m.notifyViews += new Notifier(this.Update2); } void Update2(string sender) { Console.WriteLine(sender + " was changed"); } } class Test { static void Main { Model m = new Model; new View1(m); new View2(m); m.Change; } }

Read more about this topic:  Event (computing)

Famous quotes containing the words event and/or model:

    The situation is that of him who is helpless, cannot act, in the event cannot paint, since he is obliged to paint. The act is of him who, helpless, unable to act, acts, in the event paints, since he is obliged to paint.
    Samuel Beckett (1906–1989)

    ...that absolutely everything beloved and cherished of the bourgeoisie, the conservative, the cowardly, and the impotent—the State, family life, secular art and science—was consciously or unconsciously hostile to the religious idea, to the Church, whose innate tendency and permanent aim was the dissolution of all existing worldly orders, and the reconstitution of society after the model of the ideal, the communistic City of God.
    Thomas Mann (1875–1955)