Режим агента
Прокси -модель называется прокси или суррогатом на английском языке, и оба могут быть переведены как «агент» на китайском языке. Так называемый прокси означает, что один человек или учреждение принимают меры от имени другого лица или другого учреждения. В некоторых случаях клиент не хочет или не может напрямую ссылаться на объект, а объект прокси может действовать как посредник между клиентом и целевым объектом
A. РЕЗЮМЕ ТЕМА Роль
Объявляет общий интерфейс между реальными и прокси -тем, чтобы можно было использовать любую реальную тему.
B. Доверенная роль:
Роль темы агента содержит ссылки на реальные темы, так что объекты реальной темы могут работать в любое время; Роль темы агента обеспечивает тот же интерфейс, что и роль реальной темы, так что она может заменить реальную тему для управления ссылками на реальные темы в любое время, и отвечает за создание реальных объектов темы (и удаление реальных объектов темы), когда это необходимо; Роль агента обычно выполняет операцию до или после передачи призыв клиента в реальную тему, а не просто передавать призыв к реальному объекту темы.
C. Реальная тематическая роль
Определяет реальный объект, представленный доверенной ролью
Например:
Рефакторирование с помощью динамического прокси -режима
JDK Dynamic Proxy
Целевой класс класса прокси -сервера
Резюме: 1. Поскольку класс прокси, сгенерированный JDKProxy, реализует интерфейс, все методы в целевом классе включены в класс прокси.
2. Все методы сгенерированного прокси -класса перехватывают все методы целевого класса. Содержание метода Invoke в перехватчике является именно точной композицией каждого метода класса прокси.
3. Интерфейсы должны существовать при использовании jdkproxy.
4. Три параметра в методе Invoke могут получить доступ к API вызываемого метода, параметров вызываемого метода и типа возврата вызываемого метода целевого класса.
Рефакторинг с помощью динамического прокси -режима JDK
Реконструирование транзакций Hibernate с использованием динамического прокси -режима JDK
CGLIB Dynamic Proxy
1. CGlib-это мощная, высокопроизводительная и высококачественная библиотека классов Code Generation. Он может расширить классы Java и внедрить Java Interfaces во время выполнения.
2. Используйте CGLIB для генерации класса прокси в качестве подкласса целевого класса.
3. Интерфейс не требуется для генерации классов прокси с использованием cglib
4. Прокси -класс, сгенерированный CGLIB, переопределяет методы родительского класса.
5. Содержание метода перехвата в перехватчике - это именно тел метода в классе прокси.
Рефакторирование транзакций Hibernate с использованием динамического прокси -режима CGLIB
Весна два прокси -метода
1. Если целевой объект реализует несколько интерфейсов, Spring использует JDK Java.lang.Reflect.proxy Class Proxy.
Преимущества: Поскольку есть интерфейсы, система более слабо связана. Недостатки: создайте интерфейсы для каждого целевого класса.
2. Если целевой объект не реализует какой -либо интерфейс, Spring использует библиотеку CGLIB для генерации подкласса целевого объекта.
Преимущества: Поскольку класс прокси и целевой класс наследуется, нет необходимости существовать интерфейс.
Недостатки: поскольку интерфейс не используется, связь системы не так хороша, как динамический прокси с использованием JDK.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.