2020软件构造Lab3部分内容

Lab3 部分内容讲解

1.1 面向可复用性和可维护性的设计:PlanningEntry

1.1.1 PlanningEntry的共性操作

在这里插入图片描述
其中包括:

1.活动的创建

2.计划项的状态的设置

3.计划项名称的设置

4.为计划项分配资源

5.判断计划项是否可以被取消(阻塞)

1.1.1 局部共性特征的设计方案

所有的局部共性操作均放在PlanningEntry接口中,在CommonPlanningEntry加以实现,比如start,end,cancel之类的状态改变函数。在三个应用中,时间,资源,位置的设置有很大的区别,需要在各自的子类中加以实现。
在这里插入图片描述

1.1.2 面向各应用的PlanningEntry子类型设计(个性化特征的设计方案)

  1. 航班计划项

航班计划项中包含资源的设置,时间的设置,位置的设置,需要设置日期,在FlightEntry中继承CommonPlanningEntry,其余的操作在各自的app函数中加以实现
在这里插入图片描述

  1. 高铁计划项

与航班类似,区别就是有经停站的影响,所以位置和时间都设置为了List列表,由于单个资源为车厢,而不是一整个高铁,所以资源项也为List列表,代表车厢的集合。

在这里插入图片描述

  1. 课程计划项
    课程计划项也与航班计划项类似,但是位置只有一个。

在这里插入图片描述

1.2 面向复用的设计:R

  1. 飞机:
    包括飞机的编号,类型,满员数,机龄等,除了Getter函数之外,含包括判断是否两架飞机相同的判断函数。
    在这里插入图片描述

  2. 高铁车厢:
    包括车厢的编号,类型,生产日期,满员数,除了各自的Getter函数之外,还包括判断两个车厢是否为同一个车厢的判断函数。
    在这里插入图片描述在这里插入图片描述

  3. 教师:
    包含教师的ID,姓名,性别,职称,均采用String类型,除了Getter函数之外,还包括判断是否两个教师为同一个教师的判断函数。
    在这里插入图片描述
    在这里插入图片描述

1.3 面向复用的设计:Location

根据不同的计划项,位置信息包括位置的名称和是否可以共享,除了getter函数之外,还包括判断两个位置是否相同的判断函数。
在这里插入图片描述

1.4 面向复用的设计:Timeslot

有不同的构造函数,可以添加一个时间(比如出发和到达),可以添加两个时间(比如经停站中,到达和出发时间),另外,Timeslot中含有几个static函数,来判断时间是否符合规范,判断两个时间的先后顺序,判断时间与日期是否相同等
在这里插入图片描述
在这里插入图片描述

1.5 面向复用的设计:EntryState及State设计模式

采用State模式,state是一个接口,多种不同的状态继承该接口,在应用中直接调用子类来实现多种状态的转换。

1.6 面向应用的设计:Board

Borad不要求复用,所以只需在各自的子类中实现即可。不同的Board类型大致一样,输出符合要求的计划项。并以表格的形式显现出来。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值