Figure 2: The Observer class

class Observer
{
public:
   virtual void update(
      const std::string& fPubName,
      Subject*) = 0;
   void subscribe(
      const std::string& fPubName);
   void unsubscribe(
      const std::string& fPubName);
   // ...
};