使用的是第五种设计模式,方便列出所有的接口,然后将所有的接口整合在一起。
1.1 待开发的三个应用场列出你所选定的三个应用。选择航班,列车,学习日志管理三个应用的场景分析三个应用场景的异同,理解需求:它们在哪些方面有共性、哪些方面有差异。分别从五个维度来分析与参考:
1.2 面向可复用性和可维护性的设计:PlanningEntry该节是本实验的核心部分。
实验三基本类的设计
1.2.1 PlanningEntry的共性操作 共性操作:每个计划项都有名字,计划项的状态,启动计划项,终止计划项,取消计划项,以及从某个状态转化为另一种状态,以及将所有的资源,地址,时间对转化为队列的形式,从而方便后面解决冲突问题,即完成共性的操作。
1.2.2 局部共性特征的设计方案局部共性操作:初始化一个计划项,改变及获取计划项的状态,以及获取计划项的内容。
1.2.3 面向各应用的PlanningEntry子类型设计(个性化特征的设计方案)三者都需要添加构造方法,对于航班及活动日志,只需要完成父类的方法,及添加一些设置内容的方法。而列车则需要添加block方法,及unblock方法,从而改变他们的状态。
1.3 面向复用的设计:R在三个计划项中,三者使用的资源完全不一样,R即表示三者用的资源,在使用时,及不同的调用。航班只含有一个资源活动日志含有一系列的资源,用set集合来储存,没有顺序高铁含有一系列的车厢,他们是有顺序的
实验三基本类的设计
1.4 面向复用的设计:Location先构造一个抽象类.即为location,然后构造两个类,继承他。Location1用于航班,列车;location2用于活动日志。主要的区别是:经纬度之间的差异。有共同的函数来获取地址名,以及是否地址能被共享。三个类分别表示三种应用的地点储存方式:航班有两个地点,活动有一个地点,高铁有一系列的地点,用list储存,其先后顺序表示一系列的经过的地点
实验三基本类的设计
1.5 面向复用的设计:Timeslot表示的是一组时间对:用calendar来表示一个时间的点,一个是起始时间,另一个是终止时间点。设计方法来获取起始时间及终止时间。有两种储存时间的方法:航班,活动日志包括一个时间对,及不可以被阻塞;高铁有一系列的时间对,每两个地点之间既有一个时间对。用list的方式来储存。
实验三基本类的设计
1.6 面向复用的设计:EntryState及State设计模式状态之间的转化:因为高铁状态之间的转化包含了所有航班及其活动日志之间状态的转化,状态之间的转化只能通过move函数移动,不能直接设计一个状态。

相关文章: