00001 // A Concrete Observer 00002 class CurrentConditionBoard : public ObserverBoardInterface, public DisplayBoardInterface 00003 { 00004 public: 00005 CurrentConditionBoard(ParaWeatherData& a):m_data(a) 00006 { 00007 m_data.registerOb(this); 00008 } 00009 void show() 00010 { 00011 cout<<"_____CurrentConditionBoard_____"<<endl; 00012 cout<<"humidity: "<<m_h<<endl; 00013 cout<<"temperature: "<<m_t<<endl; 00014 cout<<"pressure: "<<m_p<<endl; 00015 cout<<"_______________________________"<<endl; 00016 } 00017 00018 void update(float h, float t, float p) 00019 { 00020 m_h = h; 00021 m_t = t; 00022 m_p = p; 00023 } 00024 00025 private: 00026 float m_h; 00027 float m_t; 00028 float m_p; 00029 ParaWeatherData& m_data; 00030 };