(*Source Article - What is Model-View-Controller (MVC) Framework? Model MVC with UML Robustness Analysis)
模型-視圖-控制器 (MVC)是一種將用戶界面邏輯與業務邏輯分離的基本設計模式。模型-視圖-控制器 (MVC) 模式是將應用程序劃分為三個不同組件的一種方式;模型、視圖和控制器。
這個模型-視圖-控制器可以使用刻板的 UML 表示法中的魯棒性分析來最好地進行可視化描述,這是由 Ivar Jacobson 在他的獲獎著作 Object-Oriented Software Engineering 中首次提出的(參見下面的參考資料),並由 Doug Rosenberg 等人進一步解釋. 在他的用例驅動的 UML 對象建模一書中。
這是一個簡單的、假設的 MVC 序列圖。您在上圖中看到的是,Web 用戶啟動查詢並生成一個事件,該事件由控制器處理以從模型中獲取所需信息、驗證信息並將結果集傳遞回視圖。
實體對象(模型)只不過是您的邊界對象正在尋找的信息或數據。這些可能是數據庫表、Excel 文件或“臨時”會話或緩存數據或類似的東西。
邊界對象(視圖)是參與者(例如,用戶)在您的軟件系統中與之通信的對象。這些對象可以是系統中的任何窗口、屏幕、對話框和菜單或其他用戶界面。您可以在分析用例時輕鬆識別它們。
控制對象(控制器)是業務對像或您的業務 Web 服務。這是您捕獲用於過濾出要呈現給用戶的數據的業務規則的地方,他要求什麼。所以控制器實際上是在控制業務邏輯和數據轉換。
考慮邊界對象和實體對像是名詞,而控制器是動詞。
以下是連接的四個基本規則。
請記住,邊界對象和實體對像都是名詞,而控制器是動詞。名詞不能與其他名詞對話,但動詞可以與名詞或動詞對話。
假設我們有以下文本格式的簡單用例描述:
在學生詳情頁面,教師點擊“添加課程”按鈕,系統顯示課程列表。教師選擇課程名稱並按下“註冊”按鈕。系統為學生註冊課程。
現在您可以根據上面的用例創建一個簡單的健壯性圖:
您還可以使用文本標籤將用例描述附加到穩健性圖的右側。
在執行此操作時,您可能必須重寫用例文本,以消除歧義並顯式引用邊界對象和實體對象。大多數人不會在初稿中編寫完美的用例文本。因此,我們可以使用穩健性分析來彌合用例文本和圖表之間的差距。
基於穩健性分析,我們可以通過使用一組MVC格式的相關序列圖來開髮用例場景(正常或替代)。同樣,MVC序列圖有接口對象、控制器對象和實體對象:
它們通過邊界對象與實體交互來協調來自邊界的命令的執行。控制器對象通常對應於用例場景,並且通常由序列圖表示。
您可以在 MVC 序列圖中為生命線使用構造型,以直觀地清楚您在 MVC 中使用的對像類型,就像上面的魯棒性分析圖一樣。
假設有一個應用程序可以讓您搜索人員。UI 必須有一個文本字段,用戶可以在其中輸入搜索字符串,並且它可能有一個按鈕來開始搜索。最後,它必須有一個顯示搜索結果的區域。在我們的例子中,它是用一個列表組件實現的。
“搜索人員”用例場景是:
上面的序列圖顯示了用戶的按鈕單擊如何在應用程序中移動,直到結果最終顯示在列表組件中。
參考