打字猴:1.700478713e+09
1700478713 }
1700478714
1700478715 为什么要覆写toString方法呢?是为了打印展示的需要,可以直接把Recorder的信息打印出来。我们再来看抽象域名服务器,如代码清单32-32所示。
1700478716
1700478717 代码清单32-32 抽象域名服务器
1700478718
1700478719 public abstract class DnsServer{
1700478720
1700478721 //上级DNS是谁
1700478722
1700478723 private DnsServer upperServer;
1700478724
1700478725 //解析域名
1700478726
1700478727 public final Recorder resolve(String domain){
1700478728
1700478729 Recorder recorder=null;
1700478730
1700478731 if(isLocal(domain)){//是本服务器能解析的域名
1700478732
1700478733 recorder=echo(domain);
1700478734
1700478735 }else{//本服务器不能解析
1700478736
1700478737 //提交上级DNS进行解析
1700478738
1700478739 recorder=upperServer.resolve(domain);
1700478740
1700478741 }
1700478742
1700478743 return recorder;
1700478744
1700478745 }
1700478746
1700478747 //指向上级DNS
1700478748
1700478749 public void setUpperServer(DnsServer_upperServer){
1700478750
1700478751 this.upperServer=_upperServer;
1700478752
1700478753 }
1700478754
1700478755 //每个DNS都有一个数据处理区(ZONE),检查域名是否在本区中
1700478756
1700478757 protected abstract boolean isLocal(String domain);
1700478758
1700478759 //每个DNS服务器都必须实现解析任务
1700478760
1700478761 protected Recorder echo(String domain){
1700478762
[ 上一页 ]  [ :1.700478713e+09 ]  [ 下一页 ]