BUAA OO第三单元作业总结

OO第三单元总结

一、实现规格所采取的设计策略

我的设计策略就是阅读相应JML,将其转化为代码。感觉课程组给的架构已经很清晰了,所以自己没有做什么设计。最需要注意的是容器的选择,使用list会受复杂度限制造成时间空间问题,因此使用HashMap可以方便并且整齐很多。

二、结合课程内容,整理基于JML规格来设计测试的方法和策略

  • 仔细阅读JML规格,其描述的很清楚,严格实现就不会出现什么大问题,主要是注重方法之间的连动。

  • 课程组推荐使用junit进行正确性测试但我不太会用,所以就用样例还有一些随机数据测试,对对拍。

三、总结分析容器选择和使用的经验

使用arraylist最简单,易于实现,遍历简单可用于关联性不强的。但是属性实在太多了,性能会出现问题。并且由于有许多网络元素的增删查改,所以使用HashMap来储存独一无二的id和想对应的属性,便于提取和查找,降低时间复杂度,提高性能。

四、针对本单元容易出现的性能问题,总结分析原因如果自己作业没有出现,分析自己的设计为何可以避免

主要是senddirecmessege那个类,化简下来就是求最短路径。我使用的是dijsktra算法,就是不断的tle,后来询问同学,采用了堆优化的dijkstra算法,利用了priorityQueue,才会不tle。

五、梳理自己的作业架构设计,特别是图模型构建与维护策略

由于这个月忙着排练,把OO耽误了很多,完全就是照着指示打代码,本单元重要的性能优化和架构设计就基本没做,也没做什么维护。图就是使用HashMap将id作为key,对应元素作为value,及时缓存,以此实现query_circlede 优化。

posted @ 2021-06-01 18:41  y123h  阅读(51)  评论(0编辑  收藏  举报