[0] Messaging flexibility [Mediator] Application-specific messages through methods defined at compile time [Observer] Single generic message through the predefined update() method [Event Notifier] 
Flexible messaging by using different event types