第五次作业:多电梯调度
这次作业并没有完成.
因为我太菜了,第一次写多线程,有些无从下手,最终放弃了.
第六次作业:IFTTT文件监控
- 设计策略
这次的设计比较简单,我每监控一个文件.就生成一个线程.然后对于监控文件,我就递归生成里面的每个类,周二一天就完成了.
对于每个线程,都会实例化一个spy类,每个spy类里保存了监控的范围,监控的文件,监控的触发器,任务,其中监控的文件是使用自己创建的snapshot类完成的.
2.程序结构分析
3.bug分析
由于这次设计时,没有考虑到指导书所说的新建文件,结果我的设计无法识别什么文件是新建文件,最终由于设计上的缺陷,无法解决这个bug,万幸对方并没有找出.
第六次作业:出租车
- 设计策略
不包括测试线程在内,总共就三个类,调度类,请求类,出租车类.每有一条指令被加入,就由调度类,将该指令存入指令序列,然后每个出租扫描这个队列,一旦有可以被抢单的请求被发现,调用指令内的方法,将该出租车加入该指令保存的队列中,然后再由指令去选择一个出租车去执行该指令.
2.程序结构分析
3.bug分析
这次忘记考虑了无效输入的情况,导致无论什么指令加入,都会实例化一个请求对象(空指针的对象),导致了一个会crash的bug.