-
Notifications
You must be signed in to change notification settings - Fork 3
Proxy
Pandas edited this page Jun 18, 2017
·
1 revision
Является суррогатом другого объекта и контролирует доступ к нему.
- Удаленный заместитель предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве;
- Виртуальный заместитель создает «тяжелые» объекты по требованию.
- Защищающий заместитель контролирует доступ к исходному объекту.
- «Умная» ссылка - это замена обычного указателя. ###
- Proxy - заместитель: хранит ссылку, которая позволяет заместителю обратиться к реальному субъекту. Объект класса Proxy может обращаться к объекту класса Subject, если интерфейсы классов RealSubject и Subject одинаковы; предоставляет интерфейс, идентичный интерфейсу Subject, так что заместитель всегда может быть подставлен вместо реального субъекта; контролирует доступ к реальному субъекту и может отвечать за его создание и удаление;
- Subject - субъект: определяет общий для RealSubject и Proxy интерфейс, так что класс Proxy можно использовать везде, где ожидается RealSubject;
- RealSubject - реальный субъект: определяет реальный объект, представленный заместителем.
Proxy при необходимости переадресует запросы объекту RealSubject. Де тали зависят от вида заместителя.
С помощью паттерна заместитель при доступе к объекту вводится дополнительный уровень косвенности. У этого подхода есть много вариантов в зависимости от вида заместителя:
- Удаленный заместитель может скрыть тот факт, что объект находится в другом адресном пространстве;
- Виртуальный заместитель может выполнять оптимизацию, например создание объекта по требованию;
- Защищающий заместитель и «умная» ссылка позволяют решать дополнительные задачи при доступе к объекту.
