302
社区成员




本单元采用了正向建模的方式,即阅读指导书后整理要求后,根据需求正向设计,画出 UML 图,再根据 UML图开发实现设计。
下图为本单元最后的 UML类图
使用了 Library 类来维护整个 Library 的所有东西。
对于每一个书可能存放的位置都设置了一个类,并设置方法对其进行维护和交互。
使用了 Arranger 类来管理 open 和 close 时的调度,AppointmentManager 类来维护所有的预约操作。
个人认为这样的架构很好的满足了面向对象的性质,并有很好的扩展性
第一单元中使用的递归下降法,对各部分进行成不同对象的方法让我对面向对象的设计思维有了初步的理解
第二单元中对多线程电梯的设计中,用策略对象来维护策略,使用对象做虚拟的策略而非实际的某一个物品强化了我的设计思维
第三单元中是根据 JML 对代码进行实现,无须自己设计,但是让我认识到了提前做好充分设计之后对实现的方便之处
第四单元完全由自己设计,我结合了在前几个单元的学到的,提前进行了充分设计,对不同实物对象和策略对象进行了划分,得到了较好的架构
在整个流程中,测试从一开始的简单手搓样例,到后面使用极限的大数据和有针对性的数据进行测试,采用的测试的强度变高了。但是从结果而言效果没有很明显,还需要再加强对测试的思维的锻炼
首先在课程中使用 JAVA 完成任务,让我对 JAVA 的使用熟练程度有了一定了解。其次在第二单元的多线程电梯任务里,这个完全未涉及的领域对我的启发很大,多线程中需要考虑的线程安全,轮询等问题在难住我的同时也让我锻炼了思维,也对多线程程序有了了解。三四单元让我理解了预先良好的架构设计的威力。最后整个课程中也整体上锻炼了我设计程序的能力,了解到了面向对象的思维,并能在设计程序的过程中使用。