uml - 在序列图 MVC 中删除消息
问题描述
下图是从用户列表页面 (UsersView) 中删除用户的序列图。一旦用户单击用户视图中用户行的删除按钮,我应该删除该特定用户并更新用户视图。我的问题是,在我的序列图中删除时,我应该将删除消息指向用户模型(意味着将删除用户模型)还是我的下图很好,因为它是我使用方法消息 deleteUser() 和基本上从整个Users Model中删除相关的选定模型。
如果有人能澄清这一点,将不胜感激。
干杯!
解决方案
由于有一个操作deleteUser()
暴露出来,UserModel
我想这个类管理一个用户列表(可能是User
对象),因此它会删除其中一个。您是否要显示该对象的删除取决于您需要/想要显示的细节。如果显示对象的删除很重要,您可以向另一条生命线User
显示附加的删除消息。User
无论如何,«destroy» 看起来是错误的,因为您没有发送删除消息UserModel
来结束其生命,而只是发送正常消息。
唔。也许你UserModel
就是它User
本身?在这种情况下,您应该考虑更好地命名模型元素。虽然 MVC 似乎暗示你用相应的后缀调用你的类,但我认为这对 M 来说不是一个好主意。你见过每个类都用 Model 后缀的数据模型吗?
关于删除的更多信息。我浏览了规范并在第17.4 章消息下面找到了这些段落:
[...]
• 对象删除消息(messageSort 等于 deleteMessage)必须以 DestructionOccurrenceSpecification 结尾。
deleteMessage 是MessageSort
枚举的一个属性:
• deleteMessage 指定终止另一个生命线的消息。
就是这样。没有提到要使用的刻板印象或关键字。这将是一个简单的消息(箭头),后跟X
标记对象寿命的结束。
所以这为解释留下了一点空间。但是,没有提及与消息一起具有刻板印象/关键字«destroy»。如果您使用签名发送该操作,则该操作将被调用,并且该对象必须在完成后自行销毁。正如所写的那样,它是另一条生命线的终止,在调用操作时会自相矛盾,因为它需要在之后自毁。
就我个人而言,除非它很重要(对于内存管理和/或安全性),否则我不会显示对象及其破坏。(ìnitiateDeleteUser()
又是一个坏名字,因为它确实删除了用户)在这里就足够了。
推荐阅读
- mysql - 如何在 Node js 中承诺一个 mysql 池连接?
- node.js - 无法从 ubuntu 卸载 nodejs
- meshlab - 如何在 MeshLab 中将 3d 模型垂直于其表面展开?
- node.js - 如何解决 Adonis 应用程序启动时的崩溃?
- swift - WKWebView 保留自己
- node.js - 为什么我的 AWS Lambda 节点 JS 应用程序无法访问我的 MongoDB Atlas 集群?
- node.js - Nodemailer,服务器上的 sendMail 方法 - 无响应,无错误
- javascript - 是否可以使用 React JS 将 AdminLTE 的悬停子菜单功能更改为 onClick 功能
- java - 根据环境变量处理 Maven 中不同版本的依赖项
- jsonschema - 使用 OpenAPI 和 JSON-Schema 根据查询参数创建所需的属性