т получить большую часть досто

Автор admin Понедельник, 22 июня 2009 11:32

т получить большую часть достоинств наследования (в частности, возможность обращения к закрытым данным внешнего класса). В функции main() также проявляется одно из главных преимуществ паттерна Наблюдатель: возможность изменения поведения программы на стадии выполнения посредством динамической регистрации (и ее отмены) объектов Observer в Observable. Гибкость достигается за счет существенного возрастания объема кода. Подобные компромиссы (усложнение программы в одном месте за счет увеличения гибкости и/или снижения сложности в другом месте) вообще характерны для паттернов. Если изучить предыдущий пример, вы увидите, что OpenNotifier и CloseNotifier используют базовый интерфейс Observable. А это означает, что они могли бы быть производными от совершенно иных классов Observer; единственная связь между Observer и Flower — это интерфейс Observer. Другой вариант реализации наблюдений с высокой избирательностью основан на пометке событий при помощи каких-нибудь маркеров (пустых классов, строк или перечисляемых типов, обозначающих разные типы наблюдаемых событий). Такой подход реализуется на базе агрегирования,


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