Как Proxy заменяет оригинальный объект
Proxy в Java - это объект-заместитель, который контролирует доступ к другому объекту. Он реализует тот же интерфейс, что и оригинальный объект, но перехватывает вызовы методов, позволяя добавить дополнительную логику (логирование, проверки, кеширование).
Пример с динамическим прокси:
interface Service {
void doWork();
}
class RealService implements Service {
public void doWork() {
System.out.println("Real work");
}
}
InvocationHandler handler = (proxy, method, args) -> {
System.out.println("Before method call");
Object result = method.invoke(new RealService(), args);
System.out.println("After method call");
return result;
};
Service proxy = (Service) Proxy.newProxyInstance(
Service.class.getClassLoader(),
new Class[]{Service.class},
handler
);
proxy.doWork(); // Вызов через прокси
Proxy полностью заменяет оригинальный объект для клиента, но делегирует вызовы реальному объекту, добавляя свою логику.
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру