天天看點

EA幫助裡的登入狀态機圖

七日晴 2020-1-13 11:26

潘老師好,感覺現在做的app的登入功能很混亂,可以用但看代碼裡的邏輯沒有條理,想用狀态圖畫清楚登陸的邏輯,EA幫助裡有登入例子,還有登入次數限制條件。您看這個有參考價值嗎?

EA幫助裡的登入狀态機圖

UMLChina潘加宇

這個圖至少内外分得清楚,整個圖隻有一個login事件,就憑這一點,已經比網絡上大多數的所謂“狀态機圖”要好多了。

需要修正的地方有

(1)狀态機是類的狀态機,說“Customer Login的狀态機”不合适,可以說“Login_Form的狀态機”或“User的狀态機”。既然圖中提到showDialog之類,應該是界面類的狀态機了。

(2)狀态是描述類的“形容詞”,Login和Fail的命名不合适。

以上是形式問題,以下是内容問題

(3)登入失敗次數限制決定的是“允不允許登入”,而不是“線上”“離線”。次數超過限額的話,連驗證身份資訊的動作都不會發生,更說不上驗證是否通過了。

(4)既然涉及到登入次數限制,應該有這個邏輯:驗證身份資訊通過,某使用者登入失敗次數應該清零,驗證身份資訊未通過,某使用者登入失敗次數+1

(5)狀态應該就兩個“離線”、“線上”

(6)entry、exit的動作,每個狀态都有的,進入該狀态必須要顯示某些東西,離開就隐藏掉。

(7)到了offline、online狀态就隻能轉到終态,這不合理。

我畫了個更合理的,類似下圖

EA幫助裡的登入狀态機圖
EA幫助裡的登入狀态機圖