суббота, 19 мая 2007 г.

JavaScript - Корни прототипов

Вычислитеольная модель наследования основана на понятии класса. Однако можно положить
в основу вычислительной модели понятие объекта. Объектно-оринетрированная вычислительная
модель структуирует объекты в виде агрегативных иерархий. Всякий раз, когда составной
объект(внешний объект) не в состоянии выполнить задание самостоятельно, он может вызвать методы
одного из его компонентных объектов(внутренних объектов) - это называется делегированием
(delegation).

При подходе основанном на делегировании, функциональные возможности системы реализуются с
помощью включения (клонирования) функций существующих объектов во вновь требуемые функции.
Существующие объекты трактуются как прототипы для создания новых объектов.
...
Системы, построенные подобным образом из существующих объектов-прототипов, называются
системами-пртотипами.
....
С точки зрения повторного использования делегирование сильно приближено к наследованию.
...
Разница состоит в том, что - в случае наследования - после завершения обслуживания управление
всегда возвращается к объекту, которыы получает исходное сообщение(запрос на обслуживание).

В случае делегирования после того, как управление передано от внешнего объекта внутреннему
объекту, оно остаётся у последнего.

...
В пользу делегирования можно привести тот аргумент, что непредусмотренное
разделение более естественно и ближе человеческому способу мышления.

Из:
Лешек А. Мацяшек "Анализ требований и проектирование систем" изд. "Вильямс", 2002 . - 428 с. М.
стр. 229-230 "Делегирование или наследование"