Студопедия

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

КАТЕГОРИИ:

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






Пример 11.46. Необходимые классы и объекты






 

(defclass PERSON (is-a USER)

(role abstract)

(slot sex (access read-only)

(storage shared))

(slot age (type NUMBER)

(visibility public)))

(defmessage-handler PERSON put-age (? value)

(dynamic-put age? value))

(defclass FEMALE (is-a PERSON)

(role abstract)

(slot sex (source composite)

(default female)))

(defclass MALE (is-a PERSON)

(role abstract)

(slot sex (source composite)

(default male)))

(defclass GIRL (is-a FEMALE)

(role concrete)

(slot age (source composite)

(default 4)

(range 0.0 17.9)))))

(defclass WOMAN (is-a FEMALE)

(role concrete)

(slot age (source composite)

(default 25)

(range 18.0 100.0)))

(defclass BOY (is-a MALE)

(role concrete)

(slot age (source composite)

(default 4)

(range 0.0 17.9)))

(defclass MAN (is-a MALE)

(role concrete)

(slot age (source composite)

(default 25)

(range 18.0 100.0)))

(definstances PEOPLE

(Man-1 of MAN (age 18))

(Man-2 of MAN (age 60))

(Woman-1 of WOMAN (age 18))

(Woman-2 of WOMAN (age 60))

(Woman-3 of WOMAN)

(Boy-1 of BOY (age 8))

(Boy-2 of BOY)

(Boy-3 of BOY)

(Boy-4 of BOY)

(Girl-1 of GIRL (age 8))

(Girl-2 of GIRL))

Определение набора объектов

Набор объектов (instance-set) — это упорядоченная коллекция объектов, оп­ределенных пользователем классов. Каждый член набора объектов (instance-set member) — объект некоторого набора классов, называемых ограничениями классов (class restrictions). Различные ограничения классов могут задаваться для каждого члена набора объектов. Ограничения вместе с переменными (instance-set member variables), с которыми будут связываться соответствую­щие члены набора, называются шаблоном набора (instance-set templates). Функции запросов используют шаблон для генерации самого набора объек­тов. В ограничении классов может быть задан модуль (см. гл. 12), где опре­делен класс. Если модуль не задан, будут использоваться определения клас­сов, созданных в текущем модуле.

Определение 11.30. Синтаксис шаблона набора объектов

< шаблон-набора-объектов>:: = (< члены-шаблона-наборов-объекта>)

< член-шаблона-наборов-объекта>:: =(< переменная-набора-объектов> < ограничения-классов>)

< переменная-набора-объектов>:: = < простая-переменная>

< ограничения-классов>:: = < имена-классов>

В качестве примера можно привести шаблон, выбирающий пары объектов персон противоположного пола.

Пример 11.47. Шаблон, выбирающий пары персон противоположного пола

((? man-or-boy BOY MAN) (? woman-or-girl GIRL WOMAN))

Этот шаблон можно представить также в эквивалентной форме.

Пример 11.48. Эквивалентная форма предыдущего шаблона

((? man-or-boy MALE) (? woman-or-girl FEMALE))

В данном примере переменные? man-or-boy и? woman-or-giri ограничиваются только с помощью имен классов.


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

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