赞
踩
第四单元课程着眼于UML
语言,重点关注了类图、状态图、顺序图三种不同类型的图,分别从不同的视角展现代码架构设计与思考
在本单元任务要求我们实现一个图书馆系统,能够实现对于学生的借阅、查询、预约、续借、捐赠等操作,该图书馆包括书架、预约处、借还处、漂流角等不同位置,图书馆白天开馆,夜晚闭馆,在开馆期间处理学生的一系列请求,在闭馆期间整理图书,将图书按照规则要求运送到不同的位置
其实在每一单元的代码开发过程中,或多或少都运用到了正向建模与开发的思想和方法,但是每单元由于强调UML
的使用,所以更加明显的体现了这一过程,我将该过程大致分为以下几个步骤:
在经历这一单元的学习后,终于用上了自己画的UML类图()
本单元的问题和现实关系比较紧密,可以较为容易的抽象出所需要构建的类,由于每次迭代的内容改变不大,我在后两次的迭代中也就增加了Book
类并增加和修改了一些属性和方法,所以这里以最终的类图作为展示
Library
类,在其中处理不同的请求,将各个不同的请求分到其他的类之中实现,同时实现开馆馆等操作,以该类为中心调用其他不同类实现功能Student
、Book
、Appointment
类,分别用来记录这三者各自的属性StudentTable
类其中主要是Student
的集合,用来记录整个图书馆系统中的所有学生,对其进行相应的检查和修改Bookshelf
、AppointmentOffice
、DirftCorner
分别完成了对整个图书馆细分各个功能的实现,也对应了整理图书中,图书可能运送到的不同位置在本次作业的进行过程中,我也尝试按照要求先进行架构设计以及UML绘制,再进行代码的编写,但是由于目前我们的任务的规模较小,所需要的规格设计并不是必要的,先进行UML设计再编写代码之后再对应修改UML的过程耗费的时间较多,最终还是采取了先写代码的偷懒行为
但这并不意味着没有提前进行规格设计,我更喜欢采用简单的顺序图来梳理代码整体的逻辑,再按照逻辑顺序依次去实现相应的功能
再回首,不妨把目光放的再远一些,我仍记得初次接触Java,上学期的oopre,每周的迭代开发,一个冒险者的游戏,从最初简单的装备、药水,逐渐升级,再到这学期的昆仑计划,面向对象的思想逐渐改变了我编程的思路,让我在代码编写的过程中逐渐体会到了什么是架构设计,什么是性能优化…那个曾经势单力薄的冒险者,如今也已经完成了“昆仑”的攀登
JML
,相较于前两个单元的自行设计和完成,JML给我们天马行空的设计加入了规范和约束,规格化设计更加符合于现实生活工程中的要求,而高度抽象化的JML语言也给理解带来了不小的压力,这一单元中,我看到了代码编写的规范与约束UML
,我们需要独立完成整个图书馆系统的设计,实现正向建模与开发的全流程,相较于前几个单元而言,U4的难度并不高,但是涵盖了整个设计到代码实现,再到测试的全流程,至此,我们已经能够独立实现系统开发与设计(虽然规模不大)Junit
对个别方法进行细致的检查,构造能够保证全覆盖的样例,这一思想在U3尤为突出我们作为一个冒险者出发,收集装备和药水,完成了化简表达式的考验,在旅途中搭建起与他人的社交网络,最终乘坐着电梯,努力以较快的速度来到了昆仑山顶的图书馆,成功预约了《补给站》(bushi)
面向对象课程是我在诸多专业课中收获最大的一门,不单单逐渐掌握了java的用法,对于面向对象思想的理解和对于代码规格设计的感悟定会让我终生受益
尽管旅途中也有过不少问题,也曾深夜一行行地瞪代码,但最终还是登上了“昆仑”
还是以U1中的话来结尾吧
祝大家享受OO,享受生活~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。