码迷,mamicode.com
首页 > 其他好文 > 详细

OO第八次作业

时间:2018-05-02 19:14:33      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:直接   分析   put   sum   ima   参数   深度优先搜索   深度优先   三次   

(1)从多线程的协同和同步控制方面,分析和总结自己三次作业来的设计策略及其变化。

  首先,第五次作业从单线程过渡到了多线程,这是一个难度的飞跃。我几乎用了一天的时间才理清该怎么写,但最后写出来的却是一个不完整的多线程。因为我没有模拟真实时间,所以捎带和同质根本判断不出来,只能跑一些简单的比如(FR,1,UP)。第六次作业我大概知道该怎么写了,但是在监控对象是目录的情况下却卡住了,用了一天的时间才把目录弄明白。第七次作业与第五次作业大同小异,这次我模拟了真实时间,感觉效果还不错。

(2)基于度量来分析自己的程序结构

  第五次作业:四个类,Elevator、Scheduler、Requeue、Request类,分别有3、3、7、5个属性,分别有7、6、8、7个方法,分别有77,399,174,47行。第六次作业:4个类,Main,Monitor,Safefile,Summary类,分别有0、14、0、4个属性,分别有0、10、16、6个方法,分别有64、250、120、43行。第七次作业:五个类,Dispatch、Input、Main、Request、Taxi类,分别有2、2、0、5、11个属性,分别有4、2、0、6、17个方法,分别有82、76、58、79、285行。

  类图(以第六次作业为例):

技术分享图片

  经典的OO度量(以第七次作业为例):

技术分享图片

 

  至于设计缺陷以及不足我已经在(1)中说明了。

(3)分析自己程序的bug

  第五次作业:未真实模拟时间,未使用继承机制,无法处理捎带以及同质指令。

  第六次作业:未发现bug。

  第七次作业:地图文件不存在时会crash,地图文件中空格无法处理,时间精度有问题。

(4)分析自己发现别人程序bug所采用的策略

  认真分析公测结果。

(5) 心得体会

  我明白了如何设计多线程的程序,以及如何边输入边输出,如何处理请求队列和调度器的关系。要把输入单独作为一个线程而不是写在main里。我明白了对文件的各种操作,以及如何设计线程安全的类,重写方法并把所有的方法加上synchronized。以及用深度优先搜索求出目录下的所有文件,以及用广度优先搜索求出最短路径,我明白了如何在多个类中共享对象,就是把变量作为构造方法的参数传进去。至于线程安全,我基本上把run中所有代码直接synchronized了。

 

OO第八次作业

标签:直接   分析   put   sum   ima   参数   深度优先搜索   深度优先   三次   

原文地址:https://www.cnblogs.com/Aaa-14/p/8971643.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!