This is a mechanism of links so that components can directly notify each other when
something interesting happens. There are typically several observers of one observed
object. When something interesting happens in the observed object, it calls
notifyObservers which in turn notifies each of the observers by calling their update
methods. This is a completely different communication mechanism from creating and
posting events, which typically flow only from child to parent. Observable and
Observer are interfaces that any class may elect to implement.