Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Немного ООП, про делегаты 
:(
    Опции темы
Medved
Дата 1.3.2006, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 3
Всего: 154



Будет правильно, если я скажу, что мультиделегаты в С# реализуют функциональность паттерна "цепочка обязанностей"?
А сами делегаты реализуют концепцию делегирования в ООП?
Или можно к этому еще что-нибудь добавить?


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
Exception
Дата 1.3.2006, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Я бы сказал, они упрощают делегирование. Ведь вместо передачи экземпляра целого класса они позволяют передать ссылку только на необходимый метод.
PM   Вверх
mr.DUDA
Дата 1.3.2006, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Вроде, правильно smile


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 1.3.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(Pegas @ 1.3.2006, 02:33 Найти цитируемый пост)
Будет правильно, если я скажу, что мультиделегаты в С# реализуют функциональность паттерна "цепочка обязанностей"?

На самом деле события и делегаты реализуют паттерн Observer. Событие - это observation subject, а обработчик - observer. Если я не ошибаюсь, в цепочке обязанностей каждый ее член отвечает за то, передавать ли далее сообщение по цепочке. В событиях, как ты понимаешь, все совсем не так обстоит.
Цитата(Pegas @ 1.3.2006, 02:33 Найти цитируемый пост)
А сами делегаты реализуют концепцию делегирования в ООП?

Можно тут чуть подробнее, что за концепция такая? Thx!


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Exception
Дата 1.3.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Насколько я помню, делегирование - это передача экземпляра класса методу другого класса, дабы тот мог вызывать методы первого класса. Вроде такого:
Код
class A
{
    void DoSomeWorkOnB(B instanceOfB)
    { instanceOfB.DoSomeWork(); }
}
class B
{
    void Main()
    { A instanceOfA; a.DoSomeWorkOnB(this); }
    void DoSomeWork(){}
}

PM   Вверх
arilou
Дата 1.3.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(Exception @ 1.3.2006, 13:31 Найти цитируемый пост)
Насколько я помню, делегирование - это передача экземпляра класса методу другого класса, дабы тот мог вызывать методы первого класса

Хммм. А зачем? smile


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Exception
Дата 1.3.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Цитата
При делегировании один объект, ответственный за операцию, передает выполнение этой операции другому объекту.

khpi- iip.mipk.kharkiv.edu/library/cas e/buch/glossary.html
PM   Вверх
arilou
Дата 1.3.2006, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Уточню вопрос: я не вижу тут "концепции". В чем она заключается?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Exception
Дата 1.3.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Примерно за тем же, зачем ты передаешь другому методу другого класса делегат на свой класс smile . Извиняй, что немного путанно smile
PM   Вверх
arilou
Дата 1.3.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(Exception @ 1.3.2006, 13:36 Найти цитируемый пост)
khpi- iip.mipk.kharkiv.edu/library/cas e/buch/glossary.html

Спасибо. Немного понятнее стало.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Medved
Дата 1.3.2006, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 3
Всего: 154



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

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

У делегирования есть и недостаток, своейственный и другим подходам, применяемым для повышения гибкости за счет композиции объектов. Заключается он в том, что динамическуй, в высокой степени параметризованную программу труднее понять, нежели статическую.

E. Gamma и др. - Design Patterns.


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
arilou
Дата 1.3.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(Pegas @ 1.3.2006, 13:52 Найти цитируемый пост)
Примерно так же подкласс делегирует ответственность своему родительскому классу.

Теперь точно понятно. Спасибо!

По твоему вопросу - я на него ответил?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Medved
Дата 1.3.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 3
Всего: 154



Цитата(mr.DUDA @ 1.3.2006, 11:53 Найти цитируемый пост)
Вроде, правильно  smile


smile - > smile


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1553 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.