ass Observable: class Argument
Автор admin Воскресенье, 21 июня 2009 11:32
ass Observable: class Argument {}: class Observer { public: 514 Глава 10 • Паттерны проектирования // Вызывается наблюдаемым объектом при каждом его изменении: virtual void update(Observable* о. Argument* arg) = 0: virtual -ObserverO {} }: #endif // 0BSERVER_H III:- Так как Observer в этом решении взаимодействует с Observable, начинать нужно с объявления Observable. Пустой класс Argument действует только как базовый класс для любого типа аргумента, передаваемого при обновлении. При желании дополнительный аргумент можно передавать просто в виде void*. В обоих случаях вам придется выполнить понижающее преобразование. Тип Observer представляет «интерфейсный» класс, содержащий единственную функцию update(). Эта функция вызывается наблюдаемым объектом, когда он решает, что пришло время обновить все наблюдающие объекты. Наличие аргументов не обязательно; вызов функции update() без аргументов все равно соответствует паттерну. Тем не менее, форма с аргументом более универсальна — вместе с оповещением можно передать объект, ставший причиной обновления (поскольку Observer может регистрироваться с несколькими наб
Комментарии закрыты.
Последние комментарии