Sobes.tech
Назад к вопросам
Junior — Middle
63

Какая внутренняя структура и компоненты реализуются в паттерне проектирования Proxy?

Компании, где спрашивали
AstonAston

Ответ от нейросети

sobes.tech AI

Паттерн Proxy в Java реализует объект-заместитель, который контролирует доступ к другому объекту (реальному субъекту). Внутренняя структура включает:

  • Subject (интерфейс) — определяет общий интерфейс для реального объекта и прокси.
  • RealSubject — реальный объект, к которому осуществляется доступ.
  • Proxy — объект-заместитель, который содержит ссылку на RealSubject и реализует тот же интерфейс Subject.

Proxy может добавлять дополнительную логику при доступе к RealSubject, например, ленивую инициализацию, контроль доступа, кэширование или логирование.

Пример:

interface Subject {
    void request();
}

class RealSubject implements Subject {
    public void request() {
        System.out.println("Выполнение запроса RealSubject");
    }
}

class Proxy implements Subject {
    private RealSubject realSubject;

    public void request() {
        if (realSubject == null) {
            realSubject = new RealSubject();
        }
        System.out.println("Proxy: дополнительная логика перед вызовом RealSubject");
        realSubject.request();
    }
}