\section{Purpose}
To define one to many relationship so that when the state of the single object
(producer) changes all of the dependent objects (consumers) are notified.
Consumers indicate to the producer that they wish to receive state updates and
whenever the producer changes state it calls methods on the consumers so they
can receive the updates for the producer state.

\section{Fitness for Future?}
Yes.  It prepares a design for adding new features which use the data generated
by the producer.  The reduced coupling between producers and consumers means
that consumers can be added without modifying the producers.  Additionally,
changes to the producer that do not change the message format can be made
without modification of the consumers.

