Делегирование: различия между версиями

Материал из Поле цифровой дидактики
(Новая страница: «{{Понятие |Description=Делегирование - свойство языка программирования использовать правила поиска метода для диспетчеризации так называемых self-calls (объектных вызовов). Это понятие было введено Либерманом в его статье 1986 года «Использование прототипическ...»)
 
Строка 7: Строка 7:
; Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems
; Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems
: Реализация прототипного подхода к обмену знаниями в объектно-ориентированных системах представляет собой альтернативный механизм, называемый делегированием, появляющийся в языках акторов и нескольких объектно-ориентированных системах на основе Лиспа, таких как Director, T , Orbit, и другие. Делегирование устраняет различие между классами и экземплярами. Любой объект может служить прототипом. Чтобы создать объект, который разделяет знания с прототипом, вы создаете объект-расширение, у которого есть список, содержащий его прототипы, которые могут использоваться совместно с другими объектами, и личное поведение, характерное для самого объекта. Когда объект расширения получает сообщение, он сначала пытается ответить на сообщение, используя поведение, хранящееся в его персональной части. Если личные характеристики объекта не имеют отношения к ответу на сообщение, объект пересылает сообщение прототипам, чтобы узнать, можно ли ответить на сообщение. Этот процесс пересылки называется делегированием сообщения. Слон Фред будет объектом-расширением, в личной части которого будет храниться поведение, уникальное для Фреда, а в общей части будет ссылка на прототип Клайда.
: Реализация прототипного подхода к обмену знаниями в объектно-ориентированных системах представляет собой альтернативный механизм, называемый делегированием, появляющийся в языках акторов и нескольких объектно-ориентированных системах на основе Лиспа, таких как Director, T , Orbit, и другие. Делегирование устраняет различие между классами и экземплярами. Любой объект может служить прототипом. Чтобы создать объект, который разделяет знания с прототипом, вы создаете объект-расширение, у которого есть список, содержащий его прототипы, которые могут использоваться совместно с другими объектами, и личное поведение, характерное для самого объекта. Когда объект расширения получает сообщение, он сначала пытается ответить на сообщение, используя поведение, хранящееся в его персональной части. Если личные характеристики объекта не имеют отношения к ответу на сообщение, объект пересылает сообщение прототипам, чтобы узнать, можно ли ответить на сообщение. Этот процесс пересылки называется делегированием сообщения. Слон Фред будет объектом-расширением, в личной части которого будет храниться поведение, уникальное для Фреда, а в общей части будет ссылка на прототип Клайда.
; Пример с разведением понятий [[делегирование]] и [[наследование]]
:
https://web.media.mit.edu/~lieber/Lieberary/OOP/Delegation/Image2.gif

Версия 22:16, 25 февраля 2023


Описание Делегирование - свойство языка программирования использовать правила поиска метода для диспетчеризации так называемых self-calls (объектных вызовов). Это понятие было введено Либерманом в его статье 1986 года «Использование прототипических объектов для реализации общего поведения в объектно-ориентированных системах»
Область знаний Информатика
Авторы Liberman
Поясняющее видео
Близкие понятия
Среды и средства для освоения понятия Snap!, JavaScript
Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems
Реализация прототипного подхода к обмену знаниями в объектно-ориентированных системах представляет собой альтернативный механизм, называемый делегированием, появляющийся в языках акторов и нескольких объектно-ориентированных системах на основе Лиспа, таких как Director, T , Orbit, и другие. Делегирование устраняет различие между классами и экземплярами. Любой объект может служить прототипом. Чтобы создать объект, который разделяет знания с прототипом, вы создаете объект-расширение, у которого есть список, содержащий его прототипы, которые могут использоваться совместно с другими объектами, и личное поведение, характерное для самого объекта. Когда объект расширения получает сообщение, он сначала пытается ответить на сообщение, используя поведение, хранящееся в его персональной части. Если личные характеристики объекта не имеют отношения к ответу на сообщение, объект пересылает сообщение прототипам, чтобы узнать, можно ли ответить на сообщение. Этот процесс пересылки называется делегированием сообщения. Слон Фред будет объектом-расширением, в личной части которого будет храниться поведение, уникальное для Фреда, а в общей части будет ссылка на прототип Клайда.
Пример с разведением понятий делегирование и наследование

Image2.gif