Я читаю раздел «Прокси-серверы» в известной книге Хорстманна «Ядро Java». Однако я новичок в этой концепции. Как написано в книге, прокси необходимы только тогда, когда вы еще не знаете во время компиляции, какие интерфейсы вам нужно реализовать. Однако, когда вы создаете прокси-объект, вам необходимо предоставить массив объектов класса, которые являются всего лишь интерфейсами, которые необходимо реализовать. Разве это не похоже на внутреннее противоречие? Пожалуйста, освети меня. Спасибо!
Для чего нужны прокси в Java?
Ответы (1)
Нет, противоречия нет.
Этот массив объектов класса, который вам нужно предоставить, может быть динамическим, то есть создаваться во время выполнения. Обычно его можно прочитать из файла конфигурации, куда вы загрузите объект Class из String. Обычно так много фреймворков (например, Spring для внедрения зависимостей) работают при создании экземпляра прокси.
Адаптированный пример из Proxy javadoc:
String className = readClassNameFromFile();
Class<?> myClass = Class.forName(className);
Foo f = (Foo) Proxy.newProxyInstance(Foo.class.getClassLoader(),
new Class[] { myClass },
handler);
person
LaurentG
schedule
24.02.2014
Спасибо за ваш ответ! Этот пример определенно развеял мои сомнения.
- person HFanJava; 24.02.2014
you don't yet know at compile time, а что насчет времени выполнения, вы, вероятно, узнаете сейчас. - person Marc-Andre   schedule 24.02.2014