Предоставьте суррогат или заполнитель для другого объекта, чтобы контролировать доступ к нему.
- Прокси: поддерживает ссылку, которая позволяет прокси получить доступ к реальному объекту. Прокси-сервер может ссылаться на Субъект, если Реальный Субъект и интерфейсы Субъекта совпадают. Предоставляет интерфейс, идентичный интерфейсу субъекта, так что прокси-сервер может быть заменен реальным субъектом. Контролирует доступ к реальной теме и может нести ответственность за ее создание и удаление. Другие обязанности зависят от типа доверенного лица: Удаленные прокси-серверы отвечают за кодирование запроса и его аргументов, а также за отправку закодированного запроса реальному субъекту в другом адресном пространстве. Виртуальные прокси-серверы могут кэшировать дополнительную информацию о реальном объекте, чтобы они могли отложить доступ к нему. Например, прокси-сервер изображений из Мотивации кэширует экстент реальных изображений. Прокси-серверы защиты проверяют, что вызывающий абонент имеет права доступа, необходимые для выполнения запроса.
- Тема: определяет общий интерфейс для 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”