静态代理
理论
1.Subject(抽象主题类):
抽象类或者接口,主要负责声明真实主题和代理的共同接口方法。
2.RealSubject(真实主题类):
也叫被委托类或被代理类,继承抽象主题类或是实现抽象主题类接口,负责定义抽象主题类声明的方法的具体内容。
3.ProxySubject(代理类):
也叫委托类或代理类,继承抽象主题类或是实现抽象主题类接口,该类有一个对真实主题的引用,负责在实现的方法中直接调用真实主题类的方法。
4.Client:客户类:
即使用代理的类。
例子
Subject(抽象主题类):
RealSubject(真实主题类):
ProxySubject(代理类):
Client:客户类:
结果
动态代理
理论
动态代理通过java的反射机制来动态生成代理者的对象。
1.Subject(抽象主题类):
接口,主要负责声明真实主题和代理的共同接口方法。
2.RealSubject(真实主题类):
也叫被委托类或被代理类,实现抽象主题类接口,负责定义抽象主题类声明的方法的具体内容。
3.ProxySubject(代理类):
也叫委托类或代理类,负责实现jdk的InvocationHandler接口invoke方法现动态代理。
4.Client:客户类:
即使用代理的类。
例子
Subject(抽象主题类):
RealSubject(真实主题类):
ProxySubject(代理类):
Client:客户类:
结果