Предоставьте суррогат или заполнитель для другого объекта, чтобы контролировать доступ к нему.
- Прокси: поддерживает ссылку, которая позволяет прокси получить доступ к реальному объекту. Прокси-сервер может ссылаться на Субъект, если Реальный Субъект и интерфейсы Субъекта совпадают. Предоставляет интерфейс, идентичный интерфейсу субъекта, так что прокси-сервер может быть заменен реальным субъектом. Контролирует доступ к реальной теме и может нести ответственность за ее создание и удаление. Другие обязанности зависят от типа доверенного лица: Удаленные прокси-серверы отвечают за кодирование запроса и его аргументов, а также за отправку закодированного запроса реальному субъекту в другом адресном пространстве. Виртуальные прокси-серверы могут кэшировать дополнительную информацию о реальном объекте, чтобы они могли отложить доступ к нему. Например, прокси-сервер изображений из Мотивации кэширует экстент реальных изображений. Прокси-серверы защиты проверяют, что вызывающий абонент имеет права доступа, необходимые для выполнения запроса.
- Тема: определяет общий интерфейс для RealSubject и Прокси-сервера, чтобы Прокси-сервер можно было использовать везде, где ожидается RealSubject.
- RealSubject: определяет реальный объект, который представляет прокси-сервер.
public class Main { public static void main(String[] args) { Proxy proxy = new Proxy(); proxy.request(); } } public interface Subject { void request(); } public class RealSubject implements Subject { @Override public void request() { System.out.println("Called RealSubject.Request()"); } } public class Proxy implements Subject { private RealSubject realSubject; @Override public void request() { if (realSubject == null) { realSubject = new RealSubject(); } realSubject.request(); } }
Called RealSubject.Request()
eidherjulian61/дизайн-шаблоны
Основные шаблоны Проектирования
ид – 27 сентября ・ 1 минута чтения
Оригинал: “https://dev.to/eidher/proxy-pattern-1aj1”