interface Network {
   void browse(); // 上网的浏览功能
}

class Real implements Network{

  @Override
   public void browse() {
     // 实现浏览功能
    System.out.println( "真实操作-----已进入浏览界面");
    
  }

}
class Proxy implements Network {
    
   private Network network; // 声明代理对象

   public Proxy(Network network) {
     super();
     this.network = network;
  }

   public void chack() {
    System.out.println( "代理功能负责----检查用户是否合法化等更多的操作功能");
  }

  @Override
   public void browse() {
     //实现接口的浏览功能
     this.chack();
     this.network.browse(); // 调用真实的主题操作
  }

}
public class ProxyDemo {

   /**
    * 代理设计模式---完成了与业务功能相关的更多功能
    */

   public static void main(String[] args) {
     // TODO Auto-generated method stub
    Network network = null;
    network = new Proxy( new Real()); // 指定代理
    network.browse(); // 客户只关心上网浏览问题
  }

}