Observer: A way of notifying change to a number of classes.
Define a one-to-many dependency between objects so that when one
object changes state, all its dependents are notified and updated
automatically.
One Observer, include update(), One Subject, includes addObserve(),
deleteObserve(), notify()
Observer chain effect. an Observer is both a Observe and a Subject.
Pass what to update()? It can be big, such as update(Subject *s). It
can be small, such as update(string& ). It’s a practical problem.