Нужно краткое определение “делегата”

Мне нужно краткое описание того, как "делегация" работает в программировании, предпочтительно в одном предложении. Еще лучше использовать аналогии

8
задан Justin Ethier 22 July 2010 в 15:56
поделиться

7 ответов

Типобезопасный указатель на функцию .

10
ответ дан 5 December 2019 в 04:39
поделиться

Еще лучше использовать аналогии

Делегаты подобны насилию. Если они еще не решили вашу проблему, значит, вы использовали недостаточно.

Хорошо, эта шутка не оригинальна , так что подайте на меня в суд.

Серьезно. Делегаты похожи на ... делегатов. Отсюда и название. Что такое делегат в реальной жизни? Делегат - это тот, кто действует от имени другого . Вы поручаете им работу, а они ее выполняют. Вы хотите торговать пятьюдесятью акциями XYZ corp, вы не идете в торговую площадку и не делаете это сами, вы делегируете эту работу своему брокеру, который делает это за вас; как они это делают, вам все равно, пока это делается. Брокер - ваш представитель; они делают работу от вашего имени.

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

10
ответ дан 5 December 2019 в 04:39
поделиться

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

Определены входные данные для открывалки для пива, определенного типа бутылки и силы (ваших рук). Он содержит ключ к действию, форма которого всегда одинакова. Точно так же для делегата определен ввод, который содержит ключ, контракт, для действия (показывающего форму) с определенным вводом (форма).

Примечание: это не примерно 99 бутылок пива;)

Примечание (2): вы можете открыть пиво без открывалки , точно так же, как вы можете использовать метод (даже его ссылка) без делегата. Это просто запутано и менее понятно, но может быть намного веселее.

6
ответ дан 5 December 2019 в 04:39
поделиться

Делегат - это тип, который ссылается на метод.

1
ответ дан 5 December 2019 в 04:39
поделиться

Лучшая аналогия, которую я могу придумать, - это "указатель на функцию" из терминологии языка Си.

Идея заключается в том, что вам нужно иметь возможность вызвать часть кода, но эта часть кода, которую вы собираетесь вызвать, неизвестна до времени выполнения. Поэтому для этой цели вы используете "делегат".

1
ответ дан 5 December 2019 в 04:39
поделиться

Делегат похож на стажера, когда вы говорите: «Эй, мне нужен стажер, чтобы принести мне чашку кофе».

Если повезет, вы получите кого-то способного выполнения «принеси мне чашку кофе». Разные стажеры могут выполнять эту задачу по-разному, например, один может сбежать в Starbucks. Другой может бегать вокруг, пока не найдет где-нибудь в здании непустой кофейник и налить вам чашку.

1
ответ дан 5 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: