《软件构造》实验三个人总结与反思

    《软件构造》课程的多个实验中,实验三算是工作量最大,最折磨人的人。当然,整个实验进行下来,感悟和体会、经验与教训也是最多的,在这里分享如下:

    实验过程中遇到的难点主要是在继承关系中的泛型的使用,正则表达式的相关类库的使用,设计模式的使用,中介中心性的计算,GUI编程。

    在实验进行的过程中,暴露出对于泛型的理解还是不够全面的,在继承关系中经常会遭遇各种有关泛型使用的报错和警告。个人认为仅仅在实验的过程中实践的使用泛型是不够深入理解的,还有待抽时间系统性的学习泛型的相关知识。

    在本实验中,一个比较大的生疏知识点是有关正则表达式的使用,这个通过查阅博客园上的相关文章,系统学习了java正则表达式,逐渐熟悉了相关类库的具体使用,并设计出了根据正则表达的文件生成图的程序。

    在这个过程中遇到了几个典型的bug。

    一是由于正则表达式非常敏感,发生了几次由于文件中拼写错误导致的Vertex或Edge对象生成错误,因此发生了空指针错误,因此以后在正则表达式的有关程序中遇到bug也许最正确的方式是第一时间排查这一点。

    二是需要合理的设计判断每类语句的次序,由于设计的判断模式对象可能会有包含关系(这种包含关系可能是非常不易察觉的,往往只有bug暴露出来才会恍然大悟),所以这一点就显得非常重要。

    其次是在工厂模式中,需要妥善的设计好待生成类型中的各个方法的可见性,否则会发生迷之bug。在debug过程中,可以总结一点:在这种频繁生成各种类的程序里,一定要有序的在每一个类生成后立即检查是否确实生成了这个类,这样子有条理的检查能够节省大量时间,因为生成类过程中出现的bug往往可能被嵌套在多层继承或者调用结构之下,排查非常费时费力。

    另外,这次实验应该是第一次比较大量的使用了设计模式,通过这一次训练,体会了设计模式的好处。一方面对于客户端可见性的限制保证了所编写代码模块性更好,客户端调用时不用面临非常繁杂的可用方法,也不用为了实现某一个功能调用大量的方法才能实现。对于开发者,这也给他在自我测试过程中提供了便利。工厂方法的使用为直接的生成属性完整的对象而不是逐次的一点一点完善对象的属性提供了途径。这都为测试代码提供了便利,可以体会到客户端使用时也会大大受益。

    关于中介中心性的计算参考了一些以前不了解的算法,并自我逻辑推导选择了合适的算法计算,锻炼了查阅文献和学习掌握新算法的能力。我个人自我分析得到的关于中介中心性的算法接下来会专门撰文讨论。

    对于GUI编程,上一次编写GUI图形化用户界面还是去年暑假的事情了,这一次主要是重新拾起来以前的知识,现在可以感慨以前认为那么复杂的东西现在看来是简单了许多的,主要与自己过去一年使用类似的系统开发游戏有关。越是接触新事物,就越是善于接触新事物,各位共勉。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值