本文主要是介绍OO U4 博客,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 正向建模与开发
- 单元架构设计与追踪关系
- 单元架构设计
- 追踪关系
- 架构设计思维进化
- 测试思维演进
- 课程收获
正向建模与开发
在本单元中,我学习了UML这一建模工具。UML具备相当多种类的图,通过先设计UML图再进行开发,能够避免架构的重大调整,提前察觉当前设计存在的问题。
- 通过状态图,可以清晰地捕捉和表达系统需求,确保我们在开发的时候充分理解需求。
- 类图有助于系统的详细设计,提供了系统结构的清晰视图,有助于设计模式的应用。
- 通过顺序图,可以提前设计每个类的生命周期,进一步验证整体设计是否有问题。
在完成UML建模后,便可以进行开发了。通过实现UML图中设计好的各种关系,开发时能够规避大量的设计问题。
单元架构设计与追踪关系
单元架构设计
在本单元中,我为每个书籍可能存在的位置都单独设计了一个类。
- 借还处:负责处理借还
- 预约处:处理预约
- 书架:图书的存储位置
- 用户:该类存放所有用户的基本信息,每个用户的信息为了方便管理另设一个类,在用户类中实例化来存储数据。
- 漂流角:处理图书漂流
同时,为了方便每个类之间相互通信,以上所有类均采用单例模式,这样每个类想要调用别的类的方法,只需要获取唯一实例即可。
在具体流程上,我假设每天只有早上会整理图书,在每日早上调用各个类的整理方法,令其整理完毕自身拥有的书籍。因为该方法会在输入结束后不再整理最后剩下的图书,因此需要在程序结束前再次调用每个类的整理方法。
追踪关系
- 类图与代码设计:在我的代码中,每个类及其属性、方法的设置直接对应类图中类、属性、方法的设置。同时,各个类之间的关系也依照类图设计的关系
- 顺序图与方法调用:代码中的重要的方法调用和方法执行顺序聚能直接对应到顺序图中对象之间的消息传递和调用顺序。
- 状态图与状态转换:代码中不同状态之间的转换均能在状态图中找到相对应的内容。
架构设计思维进化
在第一单元中,我虽然对面向对象有一定了解,但是在具体的代码设计中依旧难免落入面向过程的思维。最终,在作业3结束后,我的代码已经膨胀成了一个难以名状之物,打包的jar大小大约是别人的两倍左右。到了作业3的设计,完全就是按倒葫芦起来瓢、程序能跑不要动的状态。
在第二单元中,这次我痛定思痛,采用了一些设计模式来保证架构的合理性。在本单元中,除了影子电梯相关导致代码量暴涨,剩下部分的代码结构在三次作业中依然保有相当的可读性和合理性。
在第三单元中,由于JML的设计,本单元三次作业代码均“循规蹈矩”,在架构上没有什么大的违背JML的改变。也因此,第三单元的架构一直维持良好的可读性。
在第四单元中,得益于UML的正向建模,本单元架构虽然为自行设计,但是保持了较好的可读性。
从第一单元的不可名状,到最后一个单元有较好的可读性,我在四个单元的学习中逐渐磨砺自己的架构设计能力,也掌握了更多的架构设计技巧。
测试思维演进
在第一第二单元中,我采用了设计各种评测机的方法发来完成测试。虽然评测机功能更强,但是更难实现,更容易出bug,往往调试评测机就要消耗相当久的时间。
而在第三第四单元中,我更倾向于使用Junit来完成测试。Junit扎根于Java项目本身,测试起来有更好的灵活度,更容易发现自身的bug。
课程收获
在面向对象课程的学习中,我有诸多收获。首先是工具上,oo让我:
- 掌握了Java语言
- 掌握了UML及其建模工具
- 掌握了git等工具链
其次是思想上,我从OO中学到了:
- 面向对象的设计思想(当然啦)
- 代码架构的设计原则
- 测试的原则
最后,是心理上。从OO中,我学会了按兵不动有些情况下是一种智慧。
无论怎么说,面向对象的课程虽然结束了,但是这16个周的学习经历给我留下了深深的印象。在我将来进入工作以后,或许依然会记得大二下那个被JML折磨的下午。也许那个时候的自己会感谢现在的自己?谁知道呢。面向对象课程到此便告一段落吧。
这篇关于OO U4 博客的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!