lab3中的状态设计模式

lab3中的状态设计模式

在软件构造lab3中计划项有各种状态,实验要求中规定

PlanningEntry 及其子类型需要记录计划项实体的当前“状态”。
请使用 state 设计模式来完成该任务。请自行思考设计方案。 

状态就是最小的单元,当满足某种条件的时候,状态就会发生改变。在学习时那个视频使用了糖果机来举例,每个状态都有着对应的动作,比如投币,返回币,掉落等等,有的动作是自发的有的动作是非自发的连锁,在状态模式中,State接口中包含所有子状态能执行的动作,最后传给糖果机进行调用。
在这里插入图片描述
在这里插入图片描述
回到本实验中,计划项都有5、6个状态(根据是否可被阻塞添加blocked),行为共有如下5个,分别为分配,运行,阻塞,取消,终止——其中运行,阻塞,终止都是随着时间关系自动执行。
在这里插入图片描述
因此,state类中存放各种接口
在这里插入图片描述
有相应操作的切换为响应状态,无操作则不做改变,以RunningState为例,只有阻塞和终止操作能够响应,其他操作响应为空,不做任何操作。
在这里插入图片描述
回到commonplanningentry中,首先初始化各种状态,并将自身作为参数传递进去;然后将状态改为waitting,因为默认未分配资源时都是等待状态。
在这里插入图片描述
测试通过
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值