文章目录
一. 写在前面
本次实验需要我们利用课程中给出的各种模式,来编写具有可复用性和可维护性的软件。本次实验给定了五个具体日程管理应用(高铁车次管理、航班管理、操作系统进程管理、大学课表管理、学习活动日程管理)。我们被要求尽量复用已有的代码,在实现五个应用中的三个的同时,对于三个应用的共性部分尽量只实现一次。
我们18届的lab3和lab4与17届的有所区别。由于19届开始学院的课程进行了一定的调整,lab3和lab4的内容肯定会再次改动。因此比起对于实验的具体内容进行描述,我在这里会更加倾向于分析各个问题的思路和难点。
二. 实验环境配置
本次实验中,我们对于环境并没有额外的配置,需要注意的地方是最后几个问题是在新的branch上面进行的,因此注意git的操作。需要注意的一点是,我们18届要求最终版本的实验报告在master分支中提交,所以注意最后还要切回来改报告。
三. 实验具体内容
3.1. 实验概述
本实验一共13个小问题(3.2~3.14),我将其分为5个部分。
第一个部分是3.2~3.7,这部分是我们利用CRP模式和State模式进行面向复用的ADT设计,从而尽量减少重复代码;
第二个部分是3.8和3.9,这部分是我们利用现成的API(Jswing)来为我们的软件实现信息板功能;
第三个部分是3.10和3.11,这部分是我们为我们自己的ADT设计API;
第四个部分是3.12和3.13,这部分是我们的主函数,这部分的代码量相当大,注意时间分配;
最后一部分是3.14,在一个新的branch上面实现新的功能。
3.2. ADT设计
3.2.1 state 模式
由于state模式讲的比较晚,大家用到的可能性比较大,所以为了说的详细一