Обычно любое изменение слота экземпляра объекта рассматривается как изменение с целью сопоставления образцов. Однако существует возможность указать, что изменения слота объекта не должно вызывать процесс сопоставления образцов. Для этой цели служит грань pattern-match. Значение reactive определяет, что изменения слота активизируют процесс сопоставления образцов. Эта установка принята по умолчанию. Значение non-reactive указывает, что изменения слота не приведут к активизации процесса сопоставления образцов. Рассмотрим пример 11.23. Создайте классы А и В.
Пример 11.23. Использование грани активности
(defclass A (is-a USER)
(role concrete)
(pattern-match reactive)
(slot foo (create-accessor write)
(pattern-match non-reactive)))
(defclass В (is-a USER)
(role concrete)
(pattern-match reactive)
(slot foo (create-accessor write)
(pattern-match reactive)))
После это добавьте следующие правила: