Generalizing dispatching in a distributed object system

Далее некоторые примеры будут описаны на командной языке DOS. Он не является ни неотъемлемой частью DOS, ни даже законченным языком программирования это просто средство для легкого описания и использования объектов. Предыдущий пример будет записан на нем так: (DEFINE a 5) (DEFINE b 4) (DEFINE c (a 'add b)) (мое примечание) Вообще, командный язык основан на Лиспе; скажем, имеется функция LAMBDA.

Эксперименты с dispatching.

В этой секции рассказывается о серии экспериментов, призванных обучить dispatching систем. Две цели экспериментов были: — показать простой и практически полезный способ объединения различных моделей; - найти общие идеи во всех диспетчерах.

Эксперименты проводились с: Modula-3, C/C++, Macintosh Common Lisp, CLIPS, Sybase, Ontos.

Dispatching классов.

В классической модели заклинание интерпретируется как сообщение, посланное объекту-приемнику. При этом действия диспетчера частично определяются его параметрами. Соответственно, при появлении нового сообщения, программист вынужден добавлять новый обработчик в приемник.

Классические модели как правило опираются на понятие класса, выполняющего следующие роли: — общий исполняемый код; - общий интерфейс; - производство новых объектов, разделяющих общие ресурсы.

Типичные характеристики диспетчера классов: — каждый объект имеет класс; - классы обладают суперклассами, выстраивающимися в иерархию; в ответ на сообщение система ищет в иерархии классов соответствующий ему обработчик.

Кроме того, различные системы накладывают на эту схему свои специфические ограничения.