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();// 客户只关心上网浏览问题
  }

}