代理设计

代理设计指由一个代理主题来操作真实主题,真实主题执行具体的业务操作,而代理主题负责其他相关业务的处理。好像代理上网一样,客户通过网络代理连接网络,由代理服务器完成用户权限和访问限制等与上网操作相关的操作。

 
只需要定义一个上网的接口,代理主题和真实主题都同时实现该接口,然后再由代理操作真实主题即可。
 
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();                    //客户只关心上网浏览一个功能
     }
}

  

原文地址:https://www.cnblogs.com/mywy/p/5230965.html