代理设计指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。好像代理上网一样,客户通过网络代理连接网络,由代理服务器完成用户权限和访问限制等与上网操作相关的操作。
只需要定义一个上网的接口,代理主题和真实主题都同时实现该接口,然后再由代理操作真实主题即可。
interface Network{
public void browse();
}
class Real implements Network{ //真实的上网操作
public void browse(){ //覆写抽象方法
System.out.println("上网浏览信息");
}
}
class Proxy implements Network{ //代理上网
private Network network;
public Proxy(Network network){ //设置代理的真实操作
this.network = network; //设置代理的子类
}
public void check(){
this.check(); //可以同时调用多个与具体业务相关的操作
this.network.browse(); //调用真实上网操作
}
}
public classs ProxyDemo{
public static void main(String[] args){
Network net = null; //定义接口对象
net = new Proxy(new Real());//实例化代理,同时传入代理的真实操作
net.browse(); //客户只关心上网浏览一个功能
}
}