您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。