这篇文章给大家分享的是有关EA画UML状态图中不是模式的模式是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
不是模式的模式
作为对系统建模的基本模式,大致可以遵循以下的方式来进行。
隔离系统中的小的功能模块并根据前面提到的面向对象原则建模。
设定一个系统的管理者或者组织者来管理各个共通模块,用于实现和具体相关的部分。
虽然这并不是什么设计模式,但是按照这种方式建模,可以让设计有一个良好的开端。
在交通信号系统这个例子中,车辆信号灯,行人信号灯,行人按钮,停止按钮等就是可以共通化的小模块;而信号系统就是这个系统的组织者,为了将功能进一步分离,我们另外设置了信号系统引擎来协调和控制信号的动作。
信号系统引擎TrafficSystemEngine
先看图。
AllStop状态
系统启动时的准备状态,这段时间行人方向和车辆方向都是红灯。当状态持续一定时间以后,向VehicleGo状态迁移。离开本状态时,设定停止按钮为有效状态。
VehicleGo状态
车辆正常通行状态。在进入这个状态时,向数字式车辆信号灯发送Red2Green信号并允许行人按钮操作。本状态收到来自行人通过请求按钮的命令时向VehicleCounter状态迁移;接受来自系统停止按钮的命令时也会向VehicleCounter状态迁移,但是同时会设置ShutdownFlag。
另外在本状态中设置了MininumTimeGreen和VehicleWaitButton两个子状态。
MininumTimeGreen维持一定的时间,在这个状态下如果行人按下通过请求按钮系统不会立即切换信号状态以保证足够的车辆通行时间。本状态期间发生的按钮按下时间都会被保存,以便在后面处理。
在进入VehicleWaitButton状态时首先向行人按钮模块发送HandlerReady信号,如果在MininumTimeGreen已经有行人按下通行按钮,则直接迁移到VehicleCounter状态;如果没有则切换行人按钮处理模块到立即报告状态,然后等待行人按下通行请求按钮。
VehicleCounter状态
显示绿灯倒计时。进入状态时,向车辆信号灯发送向倒计时状态迁移的通知。进入状态以后在UpdateCounter中按一定间隔向车辆信号灯发送时间更新要求。设定的时间经过以后,迁移到VehicleStopSafely状态。
VehicleStopSafely状态
车辆信号等黄灯闪烁状态。进入该状态时,向车辆信号灯发送向安全停止状态迁移的通知。离开状态时,向车辆信号灯发送向红灯状态迁移的通知。
退出该状态的条件是计时时间到。离开本状态后,如果ShutdownFlag为真则进入停止状态;否则进入PedestrainGo状态。
PedestrianGo状态
行人通行状态。进入该状态时,向行人信号灯发送向通行状态迁移的通知并向音响系统发送开始播放命令。经过一定时间以后退出改状态。离开状态时,向音响系统发送停止命令。另外在本状态下按下停止按钮也会退出本状态,但同时会设置ShutdownFlag为真。
PedestrainFinshCrossing状态
行人停止通过状态,已经进入道路的,迅速离开。进入该状态时,向行人信号灯发送向停止通过状态迁移的通知。经过一定时间以后退出改状态。离开状态时,向行人信号灯发送向禁止通行状态迁移的通知。离开本状态后,如果ShutdownFlag为真则进入停止状态;否则进入VehicleGo状态。
感谢各位的阅读!关于“EA画UML状态图中不是模式的模式是什么意思”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。