2017-08-17 26 views
1

我在我的第一個MVC項目工作,其包括一個在線測試Web應用程序。我目前正在做我的文檔,我想弄清楚我的類圖是怎麼樣的。有三種類型的用戶管理員,教師和學生。UML類圖MVC模式的web應用程序

到目前爲止,我有達到,我需要這是我的模型的一部分結論:

* UsersDAO * QuestionsDAO *測驗型號 *測驗查詢

對於控制器我可能需要的LoginController和QuizController也許UserController的

我不知道我是否應該有一個「查看」每一個「控制器」,或者如果我需要一個「控制器」爲每一種類型的用戶。我在互聯網上找到的例子非常簡單,因爲它們只包含一個Action。

請有什麼建議?

回答

1

UML的整點是系統設計的抽象。諸如控制器和視圖之類的東西的實現細節可以根據你最終構建的系統而有所不同。所有你應該建模的是你的業務對象以及它們之間的關係,而不是像它們將如何被持久化或者這些關係如何管理。

像一個視圖或控制器不是一個通用概念。不是每個框架有這些東西的概念,並且作爲一個結果,包括這些模型是定義「通用」。 FWIW,我也會對DAO,DTO,View Models等類似的東西進行建模。那些也是實現細節,並且高度依賴於框架,數據存儲等等。

+1

那麼,我可以用UML來做這兩件事。儘管如此,我們應該從抽象的部分開始,稍後再對其進行細化。 –

+0

你可以做任何你想做的事情,但是在某個時候,它不再是你正在做的UML。當你進入實現細節時,你就不在UML中。 –

+0

這就是名稱中「通用」位的全部要點。如果最終決定在MVVM架構的框架中實現這個功能會怎麼樣?然後你如何傳達「控制器」的想法。由於控制器的概念不是一個通用的概念,因此它不應該成爲UML設計的一部分。 –

1

你的模型包括以下操作(無需登錄系統):

教師(CRUD),設計考題和評分答案

學生(CRUD),採取有獎問答,並獲得測驗分數

測驗(CRUD)

這樣你就可以實現這個模型由日稀土元素Controller

TeacherController 
StudentController 
QuizController 

對於CRUD操作,您可以使用一個View但對於其他操作,你應該添加新View