UML 狀態圖

一、狀態圖

        類定義的是一組對象的抽象,而每個對象時類的一個實例,但對於一個對象而言,它在其整個生命週期中有一系列的狀態。狀態描繪了對象的動態生命週期。

   “人” 就是一個類,而“你”、“我”、“張三” 等都是“人”這個類的一個實例,“站着”、“躺着”等都是對象的一個狀態。

        在對象的整個生命週期中,它的狀態是會發生變化的,而狀態機就是用來表示一個對象在它的生命週期中響應的時間所發生的狀態變化以及對事件的響應。

二、組成元素、狀態機

狀態機是一個對象的局部視圖、一個將對象與其外部世界分離開來並獨立考查其行爲的視圖。狀態機是精確描述行爲的一種好辦法。

如描述燒水器在工作時的詳細行爲細節:

狀態:是指在對象生命週期中滿足某些條件、執行某些活動或等待某些事件的一個條件和狀況。

開始狀態

結束狀態

  命名狀態 

       在一張狀態機圖中,最爲核心的元素無外乎有兩個:一個是用圓角矩形表示的狀態;另一個是在狀態之間、包含一些文字描述的有向箭頭線,這些箭頭成爲轉換

       一個轉換是兩個狀態之間的一種關係,表示對象將在第一個狀態中執行一定的動作,並在某個特定事件發生時且滿足條件時進入第二個狀態。

三、如何繪製狀態圖

繪製狀態圖的理想步驟:尋找主要的狀態、確定狀態之間的轉換,細化狀態內的活動與轉換,用複合狀態來展開細節

1、尋扎主要狀態

在繪製狀態機圖時,最重要的一個活動就是尋找出主要的狀態。對於航班機票預訂系統而言,顯然包括的狀態主要有:

a、在確定飛行計劃時,顯然是沒有任何預訂的,並且在有人預訂機票之前都將處於這種“無預訂”狀態

b、對於訂座而言,顯然有“部分預訂”和“預定完”兩種狀態

c、當航班快要起飛時,顯然要“預訂關閉”

總結:有四種狀態:無預定、部分預訂、預定完和預訂關閉

2、確定狀態之間的關係

確定主狀態之後分析狀態之間的轉換,畫出相應的狀態機圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章