(defmessage-handler <имя-класса>
<имя-сообщения>
[<тип-обработчика>]
[<комментарии>]
(<обязательные-параметры>
[<групповой-параметр>])
<действия>)
<тип-обработчика >::= around | before | primary | after
<обязательный-параметр>::= <простое-значение>
<групповой-параметр>::= <составное-значение>
Каждый класс из списка предшествования классов объекта может иметь свои обработчики для сообщений. В этом случае объект класса и все его суперклассы распределяют работу по обработке сообщений между собой. Каждый обработчик обрабатывает ту часть сообщения, которая соответствует этому классу. Обработчики сообщений могут перекрываться обработчиками классов-потомков четырьмя способами: primary, before, after, around. Назначение этих типов обработчиков описано в табл. 11.1.
Таблица 11.1. Типы обработчиков
______________________________________________________________________________________