Java静态代理

别来无恙 提交于 2020-03-21 06:36:57

 

 

静态代理

 静态代理和JDK代理一样都是通过实现接口的方式实现代理模式
 代理接口类
 public interface mainFunction {
public String doOne();
public String doTwo();
}
 业务类(实现代理接口)
 public class Services implements mainFunction {
public String doOne() {
// TODO Auto-generated method stub
System.out.println("this is doOne function");
return "This is doOne";
}
public String doTwo() {
// TODO Auto-generated method stub
System.out.println("this is doTwo function");
return "This is doTwo";
}
}
 静态代理类(实现代理接口)
public class Proxy implements mainFunction {
private Services services;
public Proxy(Services services){
super();
this.services=services;
}
public String doOne() {
// TODO Auto-generated method stub
return services.doOne()+" my name is TangYu";
}
public String doTwo() {
// TODO Auto-generated method stub
return services.doTwo()+" my name is jarrem";
}
}


 测试类
public class MyTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Services services=new Services();
Proxy proxy=new Proxy(services);
System.out.println(proxy.doOne());
System.out.println(proxy.doTwo());
}
}
  原理:
在静态代理类中获取业务类的数据并进行修改实现代理加强
缺点:1.代码冗余,业务类和代理类都要实现代理接口,当增加接口时,全部要修改,增加了代码复杂度
 2.代理对象只服务于一种类型的对象,如果要服务多类型的对象。要为每一种对象都进行代理
 即静态代理类只能为特定的接口(Service)服务。如想要为多个接口服务则需要建立很多个代理类。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!