Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример 11.31. Определение класса а и обработчиков сообщения delete






(defclass A (is-a USER)

(role concrete))

(defmessage-handler A delete before ()

(printout t " Deleting an instance of the class A..." crlf))

(defmessage-handler USER delete after ()

(printout t " System completed deletion of an instance." crlf))

Класс а является прямым потомком класса user и не имеет слотов. Кроме того, мы добавили два обработчика сообщения delete. Один обработчик типа before относится непосредственно к классу а, другой обработчик типа after относится к самому классу user. Помимо этих двух обработчиков со­общения delete у каждого объекта потомка класса user существует еще один обработчик primary, выполняющий удаление объекта (о системных обработчиках сообщений см. в разд. 11.3.3). Для демонстрации процесса связывания сообщений включите режим просмотра изменения списка эк­земпляров объектов с помощью команды (watch instances) или диалогового окна Watch Options, открываемого через меню Execution. Создайте экземп­ляр объекта класса а и пошлите ему сообщение delete. Результат этой по­следовательности действий приведен на рис. 11.13.

 

Рис. 11.13. Иллюстрация процесса связывания сообщений

Обратите внимание, что сначала был вызван обработчик before класса и, затем системный обработчик primary, который произвел удаления объекта, а после него обработчик after класса user.

В данном разделе подробно был рассмотрен тип обработчиков сообщений. Остальные параметры конструктора defmessage-handler будут представлены ниже.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2026 год. (0.185 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал