Неудивительно, что свойство контейнера влияет на объекты 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. |
Каждая переменная, функция, подпрограмма или объект, которые вы объявляете в программе (создаете экземпляр), имеет определенную область действия, назы ваемую также видимостью. Область действия — это та часть программы, в которой ваш объект известен. В ней ваш объект является видимым, и его значение известно. Однако за пределами этой области ни один объект не знает о существовании вашего объекта и, следовательно, не может выполнять никаких действий в отношении вашего объекта или реагировать на действия вашего объекта.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.