GoF Mediator/Proxy - практическая разница
Я вот не могу понять всё таки, в чем между ними практическая разница.
Proxy - обёртка, контролирующий доступ к объекту. Mediator - посредник, чтобы избавить объекты от нужды ссылаться друг на друга. По сути и там и там мы обращаемся к какому-то объекту, который потом дёрнет оригинальный объект (или не дёрнет). Единственную разницу, что вижу - это то что прокси должен полностью совпадать интерфейсом с оригинальным объектом. Но если медиатор имеет тот же интерфейс, он превращается в прокси?.. Ну, прокси может её полностью заменять объект, типа делать вид что он есть, а его нету. Ну и медиатор может запрос резко "отрулить" в другое русло. Всё таки, какая между ними разница, кроме исключительно идиологической? |
Proxy не обёртка, а суррогат, заместитель. Обёрткой гоф называют два других паттерна -Adapter и Decorator :)
Если так рассуждать, то, в принципе, между всеми структурными паттернами нет разницы. Все они служат для уменьшения связанности отдельных элементов системы. Добавлено через 1 минуту И к тому же они и сами говорят, что возможны комбинированные реализации. Всё зависит от целей и контекста. |
Заместитель объекта, который контролирует доступ к нему вполне себе может называться обёрткой. Адаптер, куда менее похож на обёртку, чем прокси.
|
Это авторы PureMVC перевернули все с ног наголову
У GoF Медиатор - это объект, через который взаимодействуют несколько других объектов. Т.е. есть 3 компонента, обменивающихся между собой информацией При изменении одного приходится менять остальные 2 и разбираться в их взаимодействии Если же разрешить каждому компоненту работать только с медиатором (медиатор один на всех) - то менять придется только 2 объекта - компонент и медиатор. Например, модель в MVC в каком-то смысле является медиатором между разными вьюшками |
Я PureMVC не знаю )
Понятно, спасибо. |
Цитата:
Именно в этом и заключается искомая вами разница |
Часовой пояс GMT +4, время: 14:27. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.