代理模式
租房 -----------中介------------------房东
中介就是起代理角色
静态代理
public interface HelloInterface {
void sayHello();
}
public class Hello implements HelloInterface{
//被代理类
@Override
public void sayHello() {
System.out.println("hello,I am mxd!");
}
}
}
public class HelloProxy implements HelloInterface {
//代理类
private HelloInterface helloInterface=new Hello();
@Override
public void sayHello() {
System.out.println("Before");
helloInterface.sayHello();
System.out.println("After");
}
}
public class Main {
//代理类调用:
//被代理类Hello被传递给了代理类HelloProxy,代理类在执行具体方法时通过所持用的被代理类完成调用。
public static void main(String[] args) {
HelloProxy helloProxy = new HelloProxy();
helloProxy.sayHello();
}
}
/* Before
hello,I am mxd!
After*/
静态代理缺点
由于代理只能为一个类服务,如果需要代理的类很多,那么就需要编写大量的代理类,比较繁琐。