Java静态代理

静态代理

  静态代理和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)服务。如想要为多个接口服务则需要建立很多个代理类。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值