Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Организационные вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=99)
-   -   GoF Mediator/Proxy - практическая разница (http://www.flasher.ru/forum/showthread.php?t=146237)

Psycho Tiger 01.11.2010 21:01

GoF Mediator/Proxy - практическая разница
 
Я вот не могу понять всё таки, в чем между ними практическая разница.
Proxy - обёртка, контролирующий доступ к объекту.
Mediator - посредник, чтобы избавить объекты от нужды ссылаться друг на друга.

По сути и там и там мы обращаемся к какому-то объекту, который потом дёрнет оригинальный объект (или не дёрнет).

Единственную разницу, что вижу - это то что прокси должен полностью совпадать интерфейсом с оригинальным объектом. Но если медиатор имеет тот же интерфейс, он превращается в прокси?..
Ну, прокси может её полностью заменять объект, типа делать вид что он есть, а его нету. Ну и медиатор может запрос резко "отрулить" в другое русло.
Всё таки, какая между ними разница, кроме исключительно идиологической?

f.g.programmer 01.11.2010 23:39

Proxy не обёртка, а суррогат, заместитель. Обёрткой гоф называют два других паттерна -Adapter и Decorator :)

Если так рассуждать, то, в принципе, между всеми структурными паттернами нет разницы. Все они служат для уменьшения связанности отдельных элементов системы.

Добавлено через 1 минуту
И к тому же они и сами говорят, что возможны комбинированные реализации. Всё зависит от целей и контекста.

Psycho Tiger 01.11.2010 23:57

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

expl 17.11.2010 01:26

Это авторы PureMVC перевернули все с ног наголову
У GoF Медиатор - это объект, через который взаимодействуют несколько других объектов.
Т.е. есть 3 компонента, обменивающихся между собой информацией
При изменении одного приходится менять остальные 2 и разбираться в их взаимодействии
Если же разрешить каждому компоненту работать только с медиатором (медиатор один на всех) - то менять придется только 2 объекта - компонент и медиатор.

Например, модель в MVC в каком-то смысле является медиатором между разными вьюшками

Psycho Tiger 17.11.2010 14:45

Я PureMVC не знаю )

Понятно, спасибо.

terbooter 10.12.2010 21:25

Цитата:

Сообщение от Psycho Tiger (Сообщение 947061)
Заместитель объекта, который контролирует доступ к нему вполне себе может называться обёрткой. Адаптер, куда менее похож на обёртку, чем прокси.

Не может.
Именно в этом и заключается искомая вами разница


Часовой пояс GMT +4, время: 22:20.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.