微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OO第四单元总结

OO第四单元总结

本单元作业的架构设计

本单元主要实现了UML类图,UML顺序图,UML状态图相关的查询方法,因为checkstyle的限制,所以拆分成三个类,分别对应上述三种图,实现相应的查询方法,并实现增加一个元素的addElement()方法,而作业要求的MyUmlGeneralInteraction实例化这三个类各一个实例,然后构造方法中,根据元素的类别放到不同的类的实例中,进行元素的分类

一个图中,通过HashMap实现id和name的对应,因为查询中id唯一,而很多方法需要返回name,为了方便这种对应,加入这一HashMap,从而使得代码方便写,同时提高整体代码的可读性,随后所有的方法按照要求实现即可,涉及到DFS/BFS的方法使用标记位防止超时。

在四个单元中架构设计及OO方法理解的演进

对于自己设计架构的作业从第一单元第一次作业高度耦合的作业到第二单元第三次作业,我感觉我最大的进步在于回去考虑类之间的耦合程度,会认真考虑好整体架构之后再开始动手写代码,而不是一上来就写,写到一半发现这样设计很不合理,想改的话就几乎相当于重写,这对开发的效率有很大的提升。

OO最主要的思想就是面向对象,相比于之前的面向过程的代码,面向对象把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式,更适合去架构大型项目,之后再去考虑每个小部分的具体实现,这种设计技巧可以应用在很多其他方面,是一种很重要的思维方式。

在四个单元中测试理解与实践的演进

四个单元均采用自动测试的方法,前两个单元使用数据生成器和结果检查来判断结果是否正确,后两个单元直接判断结果的正确与否有很大的难度,因此生成测试数据后进行多人对拍,判断程序的正确性。

个人感觉测试是判断代码正确性的一个很方便,可靠性也比较高的方法,但是可靠性可能比不上形式验证 ,因此通过读代码来判断是否有逻辑或者实现上的bug也是一个很重要的方法。二者结合使用,基本可以保证代码的正确性。

课程收获

最大的收获还是来自代码能力的提升,通过一学期12次作业,四个单元,每单元分成三部分迭代开发,不仅提高了写代码的熟练度,更提高了自己写的代码的可扩展性和可维护性,更重要的是,让我在写代码的过程中有了面向对象的思想,并且回去考虑可扩展性和可维护性,这可能会对以后工作中的开发有很大的帮助,因为这样的思维更有利于开发较大规模的工程。

具体改进建议

  • 希望可以在pre阶段提供一些关于递归下降,多线程相关的知识,比如,可以在图书管理系统中加入典型的生产者-消费者模式,考虑到工作量的问题,可以把这部分设定为扩展部分,或者制作成填空格式。
  • 希望可以适当的在每单元第四次作业的时候放出一些下一个单元的预习资料,让同学在不那么忙的博客周可以有时间提前预习新知识。
  • 如果可以的话希望在每一次实验课后可以公布正确答案,并给每个人一个实验成绩的反馈。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐