1. 实验任务简述
实验3要求设计并实现一个抽象数据类型Planning Entry,对现实中各类利用特定资源、在特定地点/位置开展的一项任务进行抽象,并在五个具体应用中使用它。
实验要求需要完成的应用为:1 必做、2 和 3 任选 1 个、4 和 5 任选 1 个。也就是说,至少要完成 3 个应用:1 and (2 or 3) and (4 or 5)。
航班管理
高铁车次管理
操作系统进程管理
大学课表管理
学习日程管理
整个Planning Entry的设计都是围绕这下面的这一张表来进行的。
2. Planning Entry的设计方案
实验指导书上给出了较为详细的6种实现方案。方案一、二、三的缺点显而易见,故可选的方案实际只有3种。方案四通过继承树实现多维度上的不同取值的方案,仅在五个维度上就会产生组合爆炸的情况,而在将来可能增加不同的维度和变化的情况下,会出现很差的可维护性和可复用性。
而对于方案六使用decorator设计模式,我在博客中对这种设计模式的结构和适用情况进行了详细的分析。因此认为强行使用这种设计模式并不合适。<