Skip to content

Delegated Event

Leon Starr edited this page Mar 22, 2022 · 9 revisions

A signal may be addressed to a Class playing the role of Superclass in one (typically) or possibly more Generalizations.

For example, the Close signal might be addressed to an instance of Account where the Close Event is defined.

But the Close Event may be polymorphic and not actually handled by any Lifecycle State machine in the Account Class.

This Event is instead passed on to the Account subclasses along each Generalization where Account is a superclass (only one in our example).

We can think of the Close Event combined with the Generalization like a postal forwarding address. We won't know which particular Subclass will process any given event instance, but each Subclass must be prepared to receive the forwarded Event.

A delegated event, then, is an Event defined on a Class playing the role of Superclass in one or more Generalizations where that Event has a corresponding Event with the same name defined on each Subclass of each Generalization stemming from the originating Class.

An event delegated to a Subclass may be further delegated if the target Class also plays the role of a Superclass in one or more other Generalizations.

Identifiers

  1. Name + Class + Domain

Attributes

No non-referential attributes

Clone this wiki locally