time 
设为首页】【收藏本站

白小姐74期玄机: 白小姐彩图

当前位置: 白小姐彩图 > JAVA > Java高级 > 设计模式 > Java设计模式分析之适配器(Adapter)

Java设计模式分析之适配器(Adapter)

时间:2014-06-18 15:34 点击:4949次 字体:[ ]




白小姐彩图 www.5vq5o.cn 今天一大早,你的leader就匆匆忙忙跑过来找到你:“快,快,紧急任务!最近ChinaJoy马上就要开始了,老板要求提供一种直观的方式,可以查看到我们新上线的游戏中每个服的在线人数。”
 

你看了看日期,不是吧!这哪里是马上要开始了,分明是已经开始了!这怎么可能来得及呢?
 

“没关系的。”你的leader安慰你道:“功能其实很简单的,接口都已经提供好了,你只需要调用一下就行了。”
 

好吧,你勉为其难地接受了,对于这种突如其来的新需求,你早已习惯。
 

你的leader向你具体描述了一下需求,你们的游戏目前有三个服,一服已经开放一段时间了,二服和三服都是新开的服。设计的接口非常轻便,你只需要调用Utility.getOnlinePlayerCount(int),传入每个服对应的数值就可以获取到相应服在线玩家的数量了,如一服传入1,二服传入2,三服则传入3。如果你传入了一个不存在的服,则会返回-1。然后你只要将得到的数据拼装成XML就好,具体的显示功能由你的leader来完成。
 

好吧,听起来功能并不是很复杂,如果现在就开始动工好像还来得及,于是你马上敲起了代码。
 

首先定义一个用于统计在线人数的接口PlayerCount,代码如下:

  1. public interface PlayerCount {  
  2.  
  3.     String getServerName();  
  4.  
  5.     int getPlayerCount();  
  6.  
  7. }  

接着定义三个统计类实现了PlayerCount接口,分别对应了三个不同的服,如下所示:

  1. public class ServerOne implements PlayerCount {  
  2.  
  3.     @Override 
  4.     public String getServerName() {  
  5.         return "一服";  
  6.     }  
  7.  
  8.     @Override 
  9.     public int getPlayerCount() {  
  10.         return Utility.getOnlinePlayerCount(1);  
  11.     }  
  12.  
  13. }  
  14. public class ServerTwo implements PlayerCount {  
  15.  
  16.     @Override 
  17.     public String getServerName() {  
  18.         return "二服";  
  19.     }  
  20.  
  21.     @Override 
  22.     public int getPlayerCount() {  
  23.         return Utility.getOnlinePlayerCount(2);  
  24.     }  
  25.  
  26. }  
  27. public class ServerThree implements PlayerCount {  
  28.  
  29.     @Override 
  30.     public String getServerName() {  
  31.         return "三服";  
  32.     }  
  33.  
  34.     @Override 
  35.     public int getPlayerCount() {  
  36.         return Utility.getOnlinePlayerCount(3);  
  37.     }  
  38.  
  39. }  

然后定义一个XMLBuilder类,用于将各服的数据封装成XML格式,代码如下:

  1. public class XMLBuilder {  
  2.  
  3.     public static String buildXML(PlayerCount player) {  
  4.         StringBuilder builder = new StringBuilder();  
  5.         builder.append("<root>");  
  6.         builder.append("<server>").append(player.getServerName()).append("</server>");  
  7.         builder.append("<player_count").append(player.getPlayerCount()).append("</player_count>");  
  8.         builder.append("</root>");  
  9.         return builder.toString();  
  10.     }  
  11.  
  12. }  

这样的话,所有代码就完工了,如果你想查看一服在线玩家数只需要调用:

XMLBuilder.buildXML(new ServerOne());

查看二服在线玩家数只需要调用:

XMLBuilder.buildXML(new ServerTwo());

查看三服在线玩家数只需要调用:
 

XMLBuilder.buildXML(new ServerThree());

咦?你发现查看一服在线玩家数的时候,返回值永远是-1,查看二服和三服都很正常。



本文地址 : //www.5vq5o.cn/plus/view-215099-1.html
标签: 适配器 adapter java 设计模式
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:

  • 您要明白的是,如果按照上海市的人口基数2500万计算的话,就算有100万的服务人员,平均每人也要保障25个人的预约服务.人要理性 2019-04-06
  • 回复@海之宁:你的卡点就在于不知道分配既涉及消费资料有涉及生产资料。 2019-04-06
  • 赵雅芝联合“我·爱我 女性健康工程”为乳腺健康共发声 2019-04-03
  • 合肥市庐阳中学启动“教师成长工程” 2019-04-01
  • 中年不发福!51岁景岗山紧身衣秀健硕身材 2019-04-01
  • 炒房炒房,炒了北京炒西安,炒了天堂炒人间,何时休?限价现价叫人害怕。 2019-03-27
  • “5·15”全国公安机关打击和防范经济犯罪宣传日 2019-03-27
  • 穿拖鞋开车酿成追尾事故 2019-03-20
  • 重庆市永川区:“1+8+X”模式探索基层人民调解新路子 2019-03-20
  • 巢湖市第三届少儿器乐比赛圆满落幕 2019-02-15
  • Valentino 2017秋冬高级定制大秀 2018-09-08
  • 中国经济充当了世界经济发展的火车头。但是,作为世界经济火车头的中国,在世界主要经济体股市都走牛的情况下,为何熊途漫漫?这种不正常的现象,背后是我们资本市场的投融 2018-07-14
  • 别空谈,说说看,这个“简单的逻辑关系”是什么关系? 2018-07-13
  • “讲课带着泥土味,我们都爱听” 2018-07-13
  • 习近平:绿水青山就是金山银山 2018-07-12
  • 170| 821| 514| 133| 192| 609| 315| 675| 566| 267|