星期三, 12月 16, 2009

Reactions in state

IBM Rational Rhapsody 裡的 Reactions in state 其實就是 UML User Guide - State machine 一章裡講的 Internal transitions。我覺得 Internal transitions 一詞比較清楚,一看就明白是什麼意思。

意即進入 State 以後,可以收到 event,但不會轉移到其他的 state,執行完以後,仍然還在原來的 state,這邊要注意的是,原 state entry/exit 裡的程序不會再被觸發。

舉例來說,假設有個 display state,entry 會執行 display(); reactions in state 裡定義了 evRepaint 時,會執行 repaint()。那麼,在進入 display state 時,display() 會被執行,如果此時收到 evRepaint,repaint() 會被執行,但 display() 不會再執行一次。

沒有留言: