• OO第四单元总结


    面向对象第四单元总结

    本单元架构设计

    1. 第一次作业,实现一个uml类图的解析,我用了一个HandleElement类来处理和保存各种UMLElement,并且提供查询接口,并且对与class、interface等等,新建了对应的类,如MyClass , MyInterface来预处理相关信息,在读入数据完成之后,dfs预处理各种查询。
    2. 第二次作业,增加了顺序图和状态图,于是有三个类,分别处理类图,顺序图与状态图。主要查询和处理方式与第一次作业相同
    3. 第三次作业,进行有效性检查,为了方便数据的处理,我直接在处理三种图的类里面直接内置了有效性检查函数,如果发现错误,就停止预处理,记录相关错误信息。在进行多继承判断的时候,原本是考虑等信息全部处理完成,再挨个判断是否有重复继承出现,但是这种情况会被菱形图卡掉,所以在更新信息的时候就要进行多继承的处理和标记。

    四个单元架构设计与oo方法理解

    第一单元

    ​ 主要是实现了表达式求导,这一单元主要运用的模式是工厂模式。学习了层次化的结构设计,理解了面向对象的设计思维,和继承多态等等面向对象特性。

    第二单元

    ​ 这一单元主要涉及多线程,主要运用了生成者消费者模式,并且理解了多线程的编程思维和线程安全与死锁相关知识。

    第三单元

    ​ 这一单元主要学习了契约式编程,学习并且使用JML进行开发。

    第四单元

    ​ 这一单元主要学习了UML这种抽象的建模语言。

    四个单元测试理解与实践

    ​ 前两个单元我都懒得写自动化测试,主要还是靠自己在读题的过程中想到的一些可能存在的坑点进行手动构造数据测试,第一单元我只是简单的写了个正确性判定的小程序,第二单元写了输入程序。不过从强测和互测的结果来看,效果还算不错。

    ​ 后两个单元主要靠随机数据生成和与同学的代码进行对拍,这种指令型的数据手动构造太麻烦。至于课程推荐的junit,确实在一些应用场景下有较好的效果,但是对于我们现在的作业,针对每个方法单独测试也需要庞大的预读取的数据进行支撑,所以还是直接随机数+对拍效果最好。

    课程收获

    • 初步掌握了面向对象的思维方式,并与面向过程的思维方式区别开
    • 初步掌握了java语言
    • 掌握了多线程的思维与编程方式
    • 了解了JML与UML等常用建模语言

    改进建议

    1、JML工具链实在是难以使用,虽然我们完成第三单元的作业并不需要这些。

    2、第三单元的作业是不是可以改一下,既然目的是基于jml的契约式编程,是不是可以考虑将学生们分组,同时体验实现者和jml编写者。

    3、每隔一周的实验是不是可以改进一下,例如公布成绩答案与讲解

    线上学习体会

    ​ 虽然不能与老师同学面对面交流,但是线上课程可以随时观看,比线下学习效果好太多。

  • 相关阅读:
    守护进程、互斥锁、生产者消费者模型
    实现并发编程的基础理论
    udp协议
    进程与进程池
    tcp协议产生-粘包问题的解决方案
    day21面向对象_类
    day16_面向过程编程与模块导入
    day15_函数递归_匿名函数_内置函数
    三、运算符(阶段二)
    二、(续)基础语法--常量、变量和注释(阶段二)
  • 原文地址:https://www.cnblogs.com/member-re/p/13164499.html
Copyright © 2020-2023  润新知