静态代理:主要是通过代理类重写目标方法,使用代理类维护的目标对象操作目标方法,实现对目标方法的扩展。
静态代理的作用:
1、控制真实对象的访问权限,通过代理对象控制真实对象的访问权限;
2、避免创建大对象,通过使用代理一个小对象来代替真实的大对象,这样可以减少系统消耗,优化系统提高速度;
3、增强真实对象功能。
/**
* @Description: 静态代理
* 静态代理的代理对象是在编译期就被确定的。
*/
public class StaticProxy {
@Test
public void test(){
TargetInterfaceProxy proxy = new TargetInterfaceProxy(new TargetObject());
proxy.say();
}
}
/**
* 目标接口
*/
interface TargetInterface{
void say();
}
/**
* 目标对象
*/
class TargetObject implements TargetInterface{
@Override
public void say() {
System.out.println("我是目标");
}
}
/**
* 代理类
*/
class TargetInterfaceProxy implements TargetInterface{
//维护一个目标对象
private TargetInterface target;
//通过构造器初始换目标对象
public T