Represent the transport class of events across the system, it receives a name, and subject and an optional payload. The name can be any string that uniquely identifies the event across the application, while the subject represents the object that the event is applying to.
The event manager is responsible for keeping track of event listeners and pass the correct data to them, and fire them in the correct order, when associated events are triggered. You can create multiple instances of this objects to manage local events or keep a single instance and pass it around to manage all events in your app.
Objects implementing this interface should declare the
implementedEventsfunction to hint the event manager what methods should be called when an event is triggered.