00001 00015 #ifndef _TEMPLATES__OBSERVER_H_ 00016 #define _TEMPLATES__OBSERVER_H_ 00017 00021 namespace Templates 00022 { 00023 template <class T> 00024 class Observer; 00025 } 00026 00049 template <class T> 00050 class Templates::Observer 00051 { 00052 public: 00053 00057 Observer() { } 00058 00062 virtual ~Observer() { } 00063 00071 virtual void update(T *subject) =0; 00072 }; 00073 00074 #endif