面向对象第四单元总结——终章

不想打代码QAQ 学生 2024-06-13 14:58:48

面向对象第四单元总结——终章

兰亭已矣,梓泽丘墟

终于到了最后的最后,当一切安定下来,回望来时路,感慨万千

一,U4:建模与开发

本单元的要求是做一个图书馆的管理系统,并用UML图作为辅助工具进行开发

记得袁老师课上一个很印象深刻的例子,关于如何建模各个类的职责,实现高耦合低内聚:对于图书馆与借书的学生,借书记录应该放在哪里呢?应该新建一个记录类,然后两边引用

所以根据像上面这样的独立性原则,我做了下面这些事:

  • 首先建模了所有的类,包括实例性质的类,比如图书馆,借还处等,以及数据性质的类,比如书,借阅记录
  • 第二步建模类的职责,就是类内部要完成什么
  • 然后开始建模类间关系,就是每个类之间要怎样协作
  • 最后,动手写代码

这个体系比较舒服地完成了这份作业,使得整体代码不会堆在一起,明确每个类的职责,封装的很好

二,架构与UML

img

总体架构如上,其实抽象到底,这个系统就是对一堆数据包的来回传输,所以其实不难

这个架构与UML的关系是相辅相成的,就是边做架构边画图,图是帮助我理清构造思路的可视化形式,所以边写图边写代码是我认为最好的方式

三,总结:纵览四个单元

谈到思维演进,说实话这个学期收获不少

从刚开学的时候只会java语法到现在已经可以按照标准化流程来构造工程,思维便在这其中演进

总结下来就这么几条:

  • 写代码先构建框架后填空,保证维护性和可读性
  • 代码安全与线程安全:就是考虑异常出口,尽量想到所有的情况,对于线程就是合理用锁
  • 规范建模:用JML,UML辅助思考

学到这些东西说起来不多,做起来不少,每一块都值得仔细思考

四,测试

关于测试,我并没有搭建测评机,所以话语权不多,但也有两句说的

测试我一般用迭代测试法,就是先测试基础方法,然后在保证对的情况下逐个测试后面的方法,面对复杂的算法有时候可以用性能低效但保证正确的算法来测试复杂算法的正确性

样例构造思路类似,就是先用简单样例,然后一点点添加,慢慢覆盖

JUNIT测试覆盖率也可以帮忙

五,收获

收获来讲感觉是真的不少,但我只想在这里说一个:

代码能力的提升

所谓代码能力,其实就是完成一个编程任务的能力。那么,为了完成一个任务,我们究竟需要什么能力呢?

其实是以下几点:

  • 学习:学海无涯,总会有用到你不会的知识的一天,那么在短时间内学会,就是对这个能力的考验
  • 全局考虑:面向对象与之前任何课程都不一样的是,任务不能在短短百行之内完成了,那么,如何保持好的代码风格,维持可读性和可维护性,就是新的要求了
  • 设计思维:面向对象的作业没有标准答案,也就是说,你必须自己设计自己的工程,这相较于之前单纯的解题多了对设计的考察

总之,我认为真的锻炼了不少

虽然熬了几个大夜

虽然抱怨过不少

但现在看着自己对编程有了更新的理解,还是十分满足的

最后,感谢所有为oo付出的人,感谢袁老师,感谢助教,也感谢自己

完结撒花~~~

...全文
91 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

302

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧