A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 静以修身 中级黑马   /  2013-8-18 19:43  /  996 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 静以修身 于 2013-8-18 19:46 编辑

       张孝祥老师视频里说过下面的这部分代码可以进行优化,可以将commonService()函数内的那部分代码设计成一个抽象类,不确定的那部分(红色那部分代码),分别设计成两个抽象函数,假如第一部分红色代码提取为:getNumber()、第二部分红色代码提取为:notGetTask();让子类去复写。然后设计三个子类CommonService、ExpressService、VipService分别去实现它,当子类ExpressService在实现notGetTask()抽象函数的时候,要调用CommonService类中的功能,如何实现。求优化后的代码??
private void commonService() {
String windowName = "第" + windowId+ "号" + type + "窗口";
Integer number=NumberMachine.getInstance().getCommonManager().fetchServiceNumber();
System.out.println(windowName + "正在获取任务");
if(number !=null){
System.out.println(windowName + "为第" + number + "个" + "普通" + "客户服务");
long beginTime = System.currentTimeMillis();
int maxRand = Constants.MAX_SERVICE_TIME-Constants.MIN_SERVICE_TIME;
long serveTime = new Random().nextInt(maxRand)+ 1 + Constants.MIN_SERVICE_TIME;
try {
Thread.sleep(serveTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
long costTime = System.currentTimeMillis()-beginTime;
System.out.println(windowName + "为第" + number + "个" + "普通" + "客户完成服务,耗时" + costTime/1000 + "秒");
}else{
System.out.println(windowName + "没有取到任务,先休息一秒钟");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private void expressService() {
String windowName = "第" + windowId+ "号" + type + "窗口";
Integer number=NumberMachine.getInstance().getExpressManager().fetchServiceNumber();
System.out.println(windowName + "正在获取任务");
if(number !=null){
System.out.println(windowName + "为第" + number + "个" + type + "客户服务");
long beginTime = System.currentTimeMillis();
try {
Thread.sleep(Constants.MIN_SERVICE_TIME);
} catch (InterruptedException e) {
e.printStackTrace();
}
long costTime = System.currentTimeMillis()-beginTime;
System.out.println(windowName + "为第" + number + "个" + type + "客户完成服务,耗时" + costTime/1000 + "秒");
}else{
System.out.println(windowName + "没有取到任务!");
commonService();
}
}

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

1 个回复

倒序浏览
{:soso_e176:}
亲,请问下问题是否解决?
如果已解决请及时将未解决改为已解决
如果未解决请回帖追问
三天未回复的将视为已解决
详情参考:如何更改分类

保持队形,谢谢合作
{:soso_e181:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马