【5.19】软件构造Lab3

所选定的三个应用:航班管理、高铁车次管理、学习日程管理

三个应用场景的异同:位置的数量分别为1个、2个、多个;除了学习日程管理的位置可更改外,其余两个应用不可更改;资源分别为单个、有序多个、无序多个

3.2 面向可复用性和可维护性的设计:PlanningEntry
3.2.1 PlanningEntry的共性操作
1.位置操作:位置的设定、从固定计划项获取其位置
2.资源操作:资源的分配、从计划项获取资源名称
3.时间属性操作:时间分配、当前时间的获取、从计划项获取时间
在这里插入图片描述

(以Train Schedule为例)

3.2.2 局部共性特征的设计方案
1.在位置为空时可以进行位置分配
2.在资源为空时可以进行资源分配(如果资源不为空则不可以进行重新设置)
3.时间属性通过Calendar进行当前时间获取
4.状态转换:将状态转换派给state对象进行操作。在state对象中,先判断转换是否合法,然后再进行状态覆盖。
5. Get操作访问CommonPlanningEntry中定义的共性成员变量,包括Location、Resource等。

3.2.3 面向各应用的PlanningEntry子类型设计(个性化特征的设计方案)
(以航班管理为例)
·构造时间、位置、航线名称等时资源不是必须的(可以后期进行分配)
·位置设定与获取:提供两个位置,在未起飞时可以进行分配获取位置时返回装有两个位置的List资源分配;状态为WAITING时可以进行分配,否则不予分配时间获取;返回两个时间的数组比较:若提供的航线的起飞时间早于当前航线的起飞时间则返回1,若晚于则返回-1,否则返回0
·通过getLocationOrigin()、getLocationTerminal()方法获得起飞、降落机场(在Activity Calendar中则用getStrLocation()获得活动地点)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值