Основы офисного программирования и язык VBA


Встраивание вместо наследования - часть 3


С другой стороны, в этих классах применяется, и "обычное" встраивание. Заметьте: свойства XX и XY в классах Child и MyChild - это встроенные объекты ранее определенного класса Chromosome. Так что этим примером мы демонстрируем обе ипостаси встраивания.

Мы так подробно остановились на встраивании по одной простой причине: этот механизм лежит в основе объектной модели в Office 97 и Office 2000. Здесь нет наследования в истинном смысле этого слова, и хотя этот термин иногда и используется, но фактически всегда речь идет лишь о встраивании. Все приложения Office 2000 с объектной точки зрения построены одинаково. Всегда существует задающий приложение корневой объект Application (Word.Application, Excel.Application и т. д.), в который встроены все остальные объекты данного приложения.

Когда в объект Application вложен объект X, говорят, что у объекта Application есть свойство X, и запись Application.X означает обращение к объекту X. Сам объект X может быть не менее сложен: в него могут быть встроены другие объекты, например объект Y, а в него в свою очередь - объект Z. Эта цепочка вложенности может быть продолжена. Для приложений Office 2000 типична ситуация, при которой нужно указать 6-7 уровней вложенности, чтобы добраться до объекта, свойство или метод которого будет использовано. Вложенный объект, который является свойством объекта, его содержащего, называют иногда участником (accessor).

Длинные цепочки, возникающие при именовании объектов, являлись бы большим недостатком, если бы их пришлось выписывать вручную. Но вот пример того, как недостатки можно обращать в достоинства. Частью, используемой в Office 2000 всюду, где можно, технологии интеллектуальной поддержки (intellisense) является поддержка автоматического выписывания длинных имен. Как только после имени объекта ставится точка, автоматически раскрывается список с перечислением всех свойств этого объекта, так что остается только выбрать имя из списка, поставить точку и продолжить этот процесс. Если, поставив точку, Вы не видите списка, то это значит, что-то сделано неправильно, например, не задан класс объекта в операторе объявления или неверно понимается его структура, в любом случае это сигнал, заставляющий задуматься.

Подводя итог, отметим, что для программиста большинство библиотек Office 2000 задают совокупность "толстых" объектов - объектов Application. В каждый такой корневой объект вложены другие объекты, устроенные не менее сложно. С методами, свойствами и событиями, происходящими в мире этих объектов, и работает программист.

В заключение взгляните, как я представляю себе "толстый" объект Application.

Вложенность объектов

Рис. 1.1.  Вложенность объектов




Начало  Назад  Вперед



Книжный магазин