Object-Oriented 编程菜鸡上路(2)

===作业分析===

一、多线程电梯

  1.结构分析

  

 

  对于第一张图片,圈复杂性的问题,可能还是由于对于电梯运行状态和捎带等情况的条件判断逻辑不够清晰。另外,有些方法因为分支过多,仍然导致了方法的代码量比较大。很多情况下仍然是很难避免这类问题。也尝试过在最初做一些规划,但由于水平有限,并不能做出良好的设计,实际的方法设计或分支设计仍然是在写代码的过程中边写变设计,难免会有这种情况的发生,不过就目前的分析来看,情况并不严重,而且我相信可以通过将来的练习多加改善。

  以上是这次作业的类图。自我感觉,由于前两次的电梯作业的铺垫,这次的类的设计较为良好。对于请求模拟器、调度器、电梯的设计基本与前两次作业类似,只不过是加入了线程机制。而printer则是用于统一管理文件输出的类,ElevatorQueue则是由于线程安全的原因设计的对于ArrayList的封装(因为只知道ArrayList,不知道别的)。

  线程协作图,比较简单明了。首先主线程Main启动另外的线程。请求模拟器ReqSimulator作用是读取请求,放入ReqQueue中;调度器Scheduler则是从ReqQueue中取请求,满足生产者消费者模型。Scheduler将读取的请求分配给相应的电梯。

  2.测试及bug分析

  这次作业是这三次作业中写的最仔细的一个。但没想到最后还是出了差错。由于提交的一些疏漏,本来十分完善的程序在编译上出了问题,作业就这么无效了。算是白写了吧……

二、IFTTT

  1.结构分析

 

三、出租车

  1.结构分析

猜你喜欢

转载自www.cnblogs.com/ShiningLin/p/8982047.html
今日推荐