Паттерны GoF - Proxy (лекция)
Автор: Rageous
<MiF> Proxy
<MiF> Назначение - является заместителем объекта и контролирует доступ к нему
<MiF> О применении можно часами говорить
<MiF> ибо все умные указатели - это и есть proxy
<MiF> Участники:
<MiF> 1. Proxy - хранит ссылку на реальный Subject, предоставляет интерфейс идентичный Subject, контролирует доступ к нему, может отвечать за его удаление и т.д.
<MiF> 2. Subject - субъект, имеет общий интерфейс для Proxy и RealSubject
<MiF> 3. RealSubject - реальный субъект, представленный заместителем
<MiF> Может быть сразу реальный субъект, без Subject
<MiF> Что в результате:
<MiF> 1. пользователь не знает, где на самом деле находится реальный субъект
<MiF> 2. можно много всего намутить, что и не перечислить :)
<Rageous> не... при чем тут эта идиома?
<kas> эээ
<Rageous> примеры нужны, будет понятнее
<Rageous> помимо умных указателей :)
<MiF> примеры сначала на словах
<MiF> запустил я эксплорер
<kas> чем пимпл не прокси?
<MiF> залез на геймдев по диалапу, льется медленно
<MiF> пока картинок нет мне показывают рамочки
<MiF> вот это рамочка - Subject, картинка - RealSubject, а обращение ко всему через прокси
<MiF> то есть пока картинка не загрузилась прокси подсовывает рамочку, а потом - картинку
<MiF> примеров можно нагородить вагон
<kas> [21:58:32] kas: чем пимпл не прокси?
<MiF> имхо это прокси
<kas> ладна
<Rageous> а по-моему это с++-ная заморочка :)
<kas> не
<kas> ето идиома
<kas> сокрытие реализации объектом
<kas> чем не прокси :)
<MiF> нужны ли примеры кода?
<Rageous> это скорее средство сохранения инкапсуляции
<Rageous> суть проксии не совсем в инкапсуляции
<Rageous> хотя мож я и слишком узко его понимаю
<kas> ну, не важно, едем дальше?
<Rageous> угу
<MiF> значимая суть прокси - контроль обращения
<Rageous> примеры там простые
<Rageous> т.ч. давайте опустим
<MiF> так вопросы будут? :)
<MiF> нет, так нет
22 января 2006