面向对象第四单元总结

张俊华-22373480 2024-06-12 23:36:48

面向对象第四单元总结

22373480张俊华

建模开发

具体到第四单元,编程时可以先建立uml模型,然后再进行代码编写。

这样的好处在于,可以提前理清编程思路。并且可以在编程前事先和其他人交流一下想法,有利于互相改进和交流,减少了不必要的曲折。

构架演变

初始的uml模型并非一成不变,而是和代码开发形成相辅相成的互动关系。

在我的设计中,

初期的uml图更注重类之间关系的描述,而对类内部的变量和方法采取比较灵活的处理方式。因为这些细节不会对整体的架构产生太大的影响,可以后续灵活补充。但是类之间的关系错综复杂,因此用uml模型的方式提前规定好有利于直观地设计和开发。

而后期则需要建立一些顺序图和状态图来检查逻辑是否完善,是否会出现一些意想不到但逻辑上有可能的意外情况。

模型展示

img

面向对象课程总结

第一单元

在第一次作业中,我的每个成分都有一个类负责解析。这样的设计不利于文本处理。

因此我接触到了设计模式这个概念,并且在第一单元的作业中使用了工厂模式。

将文本读取器作为工厂,生产出具体的成分对象。这样的设计在第一单元的实验中就已经出现,但是我到了第二次和第三次作业才有了更好的理解。

第二单元

从这门课程的总体来看,对我而言这是强度最大的一次作业。

一方面多线程程序的bug不一定能够每次复现。另一方面多线程程序的类关系十分复杂。

为此我又学习了设计模式,特别是生产者消费者模式,虽然理解起来并不费劲,但是实际开发中bug不断。

顺序图在多线程开发中起了非常重要的作用。帮我解决了不少bug。

第三单元

这一单元的主题是jml。

用规格来描述程序的功能是一件很新奇的事,哪怕这项技术已经有很长时间了,但是学习的时候还是觉得很有冲击力。

让我最有感受的是设计与实现相分离。

在本单元的作业中,我主要根据给定的jml写具体的函数,而函数的实现可以非常不同于jml描述的情形。这样效率更高,因为jml关注正确性而程序需要考虑的就多了。

第四单元

本单元的主题是uml,放到oo学习的整体视角来看,这算是收尾的一个单元,但是从思考的进行来看,却是程序设计的开端。因为写程序的时候最主要的事并不是一上来就凭着肌肉记忆嘎嘎敲,而是思考需要使用的类,变量,方法之间的关系。而这些东西最直观的体现就是图。

但是这样的图在学习初期可以暂时忽略,因为初期的作业结构比较简单,往往不太需要真的画出图来,在大脑里想一下即可。但是随着程序迭代,代码越来越复杂,越来越有必要画图来梳理思路和表达交流了。

有了这样的工具和思维,其实也可以画前几个单元的uml图。其实我认为第二单元非常需要uml图,特别是类图和顺序图,很有帮助。

结语

起自解析表达式,何时电梯复重置。

规格模型指方略,再写程序也不迟。

春寒渐退课程始,不觉窗外绿满枝。

同房匿名来相会,他日相逢又何时。

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

302

社区成员

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

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