людаемыми объектами), и любую

Автор admin Воскресенье, 21 июня 2009 11:32

людаемыми объектами), и любую полезную дополнительную информацию. Без аргумента объекту Observer приходится самому выяснять, какой объект инициировал обновление, и собирать всю необходимую информацию. «Наблюдаемый объект» относится к типу Observable: //: C10:0bservable.h // Класс Observable. #ifndef OBSERVABLEJ #define 0BSERVABLE_H #include #include “Observer.h” class Observable { bool changed: std::set<0bserver*> observers: protected: virtual void setChangedO { changed = true: } virtual void clearChanged() { changed = false; } public: virtual void add0bserver(0bserver& o) { observers.insert(So); } virtual void deleteObserver(Observer& o) { observers.erase(So): } virtual void deleteObserversO { observers.clearO; } virtual int countObservers() { return observers.sizeO; } virtual bool hasChangedO { return changed: } // Если объект изменился, оповестить всех наблюдателей: virtual void notifyObservers(Argument* arg = 0) { if(IhasChangedO) return; clearChangedO; // Снять признак “измененности” std::set:iterator it: for(it = observers.begin();it != observers.end(): it++) Наблюдатель 515: (*


Комментарии закрыты.