前言:
四则运算结对项目成果展示,动手实现之前困惑忐忑,开发过程中劳累又收获,项目完成后满足又成长许多。
| 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间 (min) |
Planning | 计划 | 30 | * |
· Estimate | ·估计这个任务需要多少时间,并规划大致工作步骤 | 10 | * |
Development | 开发 | 1250 | * |
·Analysis | ·需求分析 (含有学习新技术) | 300 | * |
·Design Spec | ·生成设计文档 | 20 | * |
·Design Review | ·设计复审 (和同事审核设计文档) | 10 | * |
·Coding Standard | ·代码规范 (为目前的开发制定合适的规范) | 15 | * |
·Design | ·具体设计 | 30 | * |
·Coding | ·具体编码 | 600 | * |
·Code Review | ·代码复审 | 30 | * |
·Test | ·测试(自我测试,修改代码,提交修改) | 200 | * |
Modular | 模块 | 600 | * |
·Computing module | 计算模块 | 400 | * |
·Timing module | 计时模块 | 200 | * |
Reporting | 报告 | 490 | * |
·Test Report | ·测试报告 | 420 | * |
·Size Measurement | ·计算工作量 | 40 | * |
·Postmortem & Process Improvement Plan | ·事后总结, 并提出过程改进计划 | 30 | * |
为什么要隐藏?首先可以隐藏复杂度:这样你就不用再去应付它,除非你要特别关注的时候;其次隐藏变化源:这样当变化发生时,其影响就能被限制在局部范围内。复杂度的根源包括复杂的数据类型、文件结构、布尔判断以及晦涩的算法等等。信息隐藏的价值:信息隐藏有着独特的启发力,它能够激发出有效的设计方案。信息隐藏同样有助于设计类的公开接口。在设计的所有层面上,都可以通过询问隐藏什么的方式达到好的设计决策。
把类内数据误认为全局变量:为了避免全局数据可能带来的问题,可能会把类内数据误认为是全局数据并避免使用它,我们把Expression.java的answer变量由最初的全局变量变为类内数据,因为Judge.java里面有一个answer变量,为了避免Judge.java使用Expression.java的answer,我们把Judge.java的answer变量改为了ans变量名。其实只要Expression.java的answer变量的位置处于局部变量的位置就可以避免了。
通过参数传值,类间调用等实现模块的对接(主要是Command类和Expression类)。