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