静态代理的条件至少有三个角色
1.创建真实角色 2.创建代理角色 3.代理角色.方法()。
注意:代理模式是要让代理类来使用委托类,所以是通过 new 代理类,在代理类中使用委托类,有点像回调函数的用法。
/**
* 功能描述:测试
* @author liukai
* @date 2015年11月13日 下午3:47:33
* @version 1.0
*/
public class Test {
public static void main(String[] args) {
ServiceImpl serviceImpl = new ServiceImpl();
IService iService = (IService) Proxy.getInstance(serviceImpl);
iService.say();
}
}
/**
* 功能描述:代理类
* @author liukai
* @date 2015年11月13日 下午3:47:19
* @version 1.0
*/
public class Proxy implements IService{
private IService iService;
public Proxy() {
}
public Proxy(IService iService) {
this.iService = iService;
}
@Override
public void say() {
System.out.println("Proxy.say()");
iService.say();
}
public static IService getInstance(ServiceImpl object) {
return new Proxy(object);
}
}
/**
* 功能描述:实现类
* @author liukai
* @date 2015年11月13日 下午3:47:27
* @version 1.0
*/
public class ServiceImpl implements IService{
public ServiceImpl() {
// TODO Auto-generated constructor stub
}
@Override
public void say() {
System.out.println("ServiceImpl.say()");
}
}
/**
* 功能描述:接口
* @author liukai
* @date 2015年11月13日 下午3:47:06
* @version 1.0
*/
public interface IService {
public abstract void say();
}