Язык Lotus Script. Компоненты языка LotusScript. Построение операторов языка LotusScript, страница 11

Неудивительно, что свойство контейнера влияет на объекты Notes Объект NotesDocument находится внутри объектаNotesDatabase, который, в свою очередь на-^ходится внутри объектаNotesSession. Чтобы выполнить какое-либо действие над объектом поле в объектеNotesDocument, необходимо обратиться (посредством ссылок на объекты, которые будут рассматриваться позже) к объектуNotesSession, объектуNotesDatabase, объектуNotesDocument и затем к объекту поле. И наконец, на объекты Notes ссылаются следующим образом: объявляют переменную ссылки на объект и затем присваивают эту ссылку на объект некоторому экземпляру данного класса. Эго аналогично указателю или дескриптору в других языках.

Классы

Классы — это абстрактные определения объектов. Возвращаясь к примеру с домом, предположим, что дом располагается по адресу: проспект Домино, 500. Для нас это адрес дома; а для сервера Domino это ссылка на экземпляр класса дом. Класс дом — это определение того, что собой должен представлять дом — каковы его свойства, методы и т.д. До тех пор пока по адресу: проспект Домино. 500 не будет по строен дом (по терминологии ООП — создан экземпляр объекта), он существует только теоретически. После того как он будет создан, он становится реальным предметом. Проспект Домино, 500 — это ссылка (дескриптор), с помощью которой над данным экземпляром дома совершаются различные действия.

Классы сервера Domino разделяются на две группы: классы клиента (front-end classes) и классы сервера (back-end classes). Всякий раз, когда по отношению к какому-либо содержимому сервера Domino употребляется термин "клиент" (front end), он относится к чему-либо видимому по интерфейсу пользователя; это можно видеть на экране. И, напротив, термин "сервер" (back end) предполагает что-либо невидимое — за экраном, например. В Domino 4.5 всего имеется 21 класс сервера и 7 классов клиента. В Domino 5.0 — 27 классов сервера и 7 классов клиента. Причина заключается в том, что именно столько можно отображать на экране. Все классы приведены в приложении А.

События

Каждый класс описывает некоторый предмет, например, класс дом, комод или стул. Каждый из этих предметов имеет свойства (атрибуты) и методы (способы выполнения действий над объектами, которые определяются классом). У некоторых классов имеются также события, на которые они реагируют. Классdoorbell имеет событиеpress, на которое он реагирует. Как разработчик классаdoorbell я написал для события сценарий, которая включает зуммер, когда происходит событие press.

Каждый отдельный класс имеет набор событий, на которые он реагирует. К наиболее распространенным событиям относятся следующие:Click, Entering, Exiting, Initialize, Terminate, QueryOpen, PostOpen, QerySave и PostSave. У всех объектов есть событияInitialize иTerminate; кроме того, у объектов могут быть другие программируемые события. Обратите внимание: тот факт, что объект может реагировать на некоторое событие, не означает наличие программы, написанной для обработки события. Разработчик должен выбирать, на какие события объект будет реагировать. События перечислены в табл. 22.10.

Таблица 22.10 - События объекта

Имя события

Применение

(Options)

Опции компилятора, которые применяются ко всем объектам.

(Declarations)

Область объявления переменных и их типов, которые доступны для всех событий данного объекта.

Initialize

У всех объектов имеется событие Initialize, которое происходит, когда объект загружается.

Terminate

У всех объектов имеется событие Terminate, которое происходит, когда объект закрывается.

Query

Происходит перед вызовом именованного события.

События Query имеются для Open, ModeChange, Recalc, AddToFolder, Paste, DragDrop,DocumentDelete, DocumentUndelete, Saveи Close.

Post

Происходит после вызова именованного события. События Post имеются у таких событий, как Open, Recalc, ModeChange, Paste иDragDrop.

Область действия

Каждая переменная, функция, подпрограмма или объект, которые вы объявляете в программе (создаете экземпляр), имеет определенную область действия, назы ваемую также видимостью. Область действия — это та часть программы, в которой ваш объект известен. В ней ваш объект является видимым, и его значение известно. Однако за пределами этой области ни один объект не знает о существовании вашего объекта и, следовательно, не может выполнять никаких действий в отношении вашего объекта или реагировать на действия вашего объекта.