静态代理模式和动态代理模式
?
静态代理模式
?
1.代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。
?
2.在某些情况下,一个客户不想或者不能直接应用另一个对象,而代理对象可以
在客户端和目标对象之间起到中介的作用。
?
3.掌握代理模式对于Spring Aop的学习是至关重要的,甚至比Spring Aop
本身的学习还要重要(编程与设计思想)
?
4.代理模式一般涉及到的角色有:
抽象角色:声明真实对象和代理对象的共同接口
代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时
代理对象提供了真实对象相同接口以便任何时候都能替代真实对象。同时,代理对象
可以对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。
真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。
?
?
?
?
抽象角色:
?
?
package org.cric.dynamicproxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;public class Client {public static void main(String[] args) {RealSubject subject = new RealSubject();InvocationHandler ih = new ProxySubject(subject);Class<?> clazz = subject.getClass();Subject s = (Subject)Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), ih);s.request();}}?
?
?
?