



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
如何减少代码中的分支语句代码中往往存在很多的分支语句:判断+执行;大量的分支语句让代码看上去很丑陋,而且容易增加代码复杂度。所以我觉得减少代码的分支语句或者隐藏分支语句是一件很有必要的事情,能够让代码变得更加清晰易读。减少分支语句,在实际的编程中遇到了一种比较好的方式Command模式减少分支语句。Command模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。所以可以将一系列请求都封装成对象,形成一个请求集合。当需要执行一个请求的时候直接去这个集合中查找到对应的请求对象,然后执行对象的Command。下面以一个具体的例子看一下这个过程:结构如下:1命令原型interface ScenceCommand void doExecute();/CallHang命令class CallHangScenceCommand implements ScenceCommand private TelEventTreater mTreater; public CallHangScenceCommand(TelEventTreater treater) mTreater = treater; Override public void doExecute() mTreater.doHangCall(); /CallAnswer命令class CallAnswerScenceCommand implements ScenceCommand private TelEventTreater mTreater; public CallAnswerScenceCommand(TelEventTreater treater) mTreater = treater; Override public void doExecute() mTreater.doAnswerCall(); 不一一列出2命令注册abstract class ScenceCommandRegister /存储所有的命令请求集合 private HashMap mScenceCmdSet; public ScenceCommandRegister() mScenceCmdSet = new HashMap(); /命令请求注册 public void registerCommand(String name, ScenceCommand command) mScenceCmdSet.put(name, command); /命令请求查询 public ScenceCommand getCommand(String name) return mScenceCmdSet.get(name); class CallScenceCommandRegiser extends ScenceCommandRegister public CallScenceCommandRegiser(TelEventTreater treater) super();/注册所有命令registerCommand(CallInputCommandMatch.CALL_DEFAULT, new CallDefaultScenceCommand(treater); registerCommand(CallInputCommandMatch.CALL_HANG, new CallHangScenceCommand(treater); registerCommand(CallInputCommandMatch.CALL_ANSWER, new CallAnswerScenceCommand(treater); registerCommand(CallInputCommandMatch.CALL_REPLY, new CallReplyScenceCommand(treater); registerCommand(CallInputCommandMatch.CALL_MUTE, new CallMuteScenceCommand(treater); registerCommand(CallInputCommandMatch.CALL_COMPLETE, new CallCompleteScenceCommand(treater); registerCommand(CallInputCommandMatch.CALL_NORSP, new CallNoRspScenceCommand(treater); 3命令执行private static ScenceCommandRegister mScenceRegister;Overridepublic void onResult(Result res) String resultStr = res.Get_RawText();do /操作请求 String cmdStr = mCommandMatch.matchInputCommand(resultStr); if (cmdStr = null) break; /命令请求ScenceCommand scenceCmd = mScenceRegister.getCommand(cmdStr);if (scenceCmd = null) break;/命令执行scenceCmd.doExecute(); while (false);4 总结这是存在比较多的条件判断情况下,以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 香港及境外股市投资咨询服务协议书7篇
- 2025年汉服文化主题乐园景区景区与文化旅游合作报告
- 关于预告登记的协议书7篇
- 2025年废弃矿井资源再利用技术路径与产业绿色金融支持分析报告
- 校企合作实习协议范本与指导
- 2025年工业互联网平台网络安全态势感知技术安全态势感知能力评估与提升研究报告001
- 外贸业务合同范本及风险防控指南
- 劳务派遣项目标书编写及实施指南
- 数控实训基地建设规划与实施方案
- 小学语文课本中新课标教案设计
- 广东省2025年度初级注册安全工程师职业资格考试金属非金属矿山安全复习题及答案
- 湖南安全员c3考试试题及答案
- 2025年中学生心理健康测试题及答案
- 二年级防溺水教案
- 后厨设备安全操作培训课件
- 好风起二部合唱简谱致远音乐
- 我不是完美小孩
- 【超星尔雅学习通】海上丝绸之路网课章节答案
- 有趣的化学启蒙课
- 轻钢龙骨隔断墙施工合同协议书
- GB/T 18091-2015玻璃幕墙光热性能
评论
0/150
提交评论