2017-08-17 95 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