00001 // The Abstract Observer 00002 class ObserverBoardInterface 00003 { 00004 public: 00005 virtual void update(float a,float b,float c) = 0; 00006 }; 00007 00008 // Abstract Interface for Displays 00009 class DisplayBoardInterface 00010 { 00011 public: 00012 virtual void show() = 0; 00013 }; 00014 00015 // The Abstract Subject 00016 class WeatherDataInterface 00017 { 00018 public: 00019 virtual void registerOb(ObserverBoardInterface* ob) = 0; 00020 virtual void removeOb(ObserverBoardInterface* ob) = 0; 00021 virtual void notifyOb() = 0; 00022 };