系统设计-使用MVC模式构建时序图

问题描述 投票:0回答:1

我目前正在使用 MVC 设计模式对社交媒体应用程序进行建模,并打算构建一个序列图来说明流程。我关注的用例涉及创建帖子。以下是所涉及的连续步骤:

  1. 用户单击“创建帖子”按钮。
  2. 系统为用户提供了创建新帖子的模式。
  3. 经过身份验证的用户输入他们想要发布的内容。
  4. 系统会显示一条警报通知,确认该操作。

这个序列图正确吗?

oop model-view-controller uml software-design sequence-diagram
1个回答
0
投票

从 UML 角度来看,该图几乎是正确的...

这张图是正确的,因为:

  • 它与描述的序列相对应,只是多了一些元素,
  • 语法没问题,只是消息名称和构造型应该位于箭头上方并且不隐藏/中断它,并且“创建”消息应该是点线且是开放式的。

一些细节需要交叉检查以确保一致性和消歧:

  • 没有“创建帖子按钮”
  • 空头箭头是异步消息。如果照章办事,不应该有回复消息给他们,而是另一个相反方向的正常消息。然而,这是一个非常严格的解释,许多建模者像您一样使用回复消息。
  • 不清楚为什么在
    store()
    之后中断激活(黑色矩形)以及为什么在
    createPostContent()
  • 之后继续激活
  • 您真的是说每次发帖都要创建一个新数据库吗?或者它是您创建的数据库连接,并且数据库永久保留?
  • 相反,您真的想让模态窗口始终处于活动状态吗?或者您每次创建新帖子时都不创建它吗? (这里没有对错,这取决于你的底层 UI API)

...然而这对于 MVC 来说是完全错误的

原始 MVC 中,用户向控制器(或负责特定视图的子控制器)发送命令和输入,并从视图接收通知。视图可以查询模型来显示它。但如果有变化也可以由模型通知。

在 MVC 中,模型将负责与数据库交互(图中不一定需要数据库)。挑战在于,可以考虑使用不同的架构来与数据库交互,从活动记录(您在这里所做的,负责与数据库交互的帖子)到模式复杂但功能强大的存储库,通过表数据网关和许多其他有效的方法。

© www.soinside.com 2019 - 2024. All rights reserved.