首页 > 解决方案 > 在序列图 MVC 中删除消息

问题描述

下图是从用户列表页面 (UsersView) 中删除用户的序列图。一旦用户单击用户视图中用户行的删除按钮,我应该删除该特定用户并更新用户视图。我的问题是,在我的序列图中删除时,我应该将删除消息指向用户模型(意味着将删除用户模型)还是我的下图很好,因为它是我使用方法消息 deleteUser() 和基本上从整个Users Model中删除相关的选定模型。

在此处输入图像描述

如果有人能澄清这一点,将不胜感激。

干杯!

标签: umldiagramclass-diagramsequence-diagram

解决方案


由于有一个操作deleteUser()暴露出来,UserModel我想这个类管理一个用户列表(可能是User对象),因此它会删除其中一个。您是否要显示该对象的删除取决于您需要/想要显示的细节。如果显示对象的删除很重要,您可以向另一条生命线User显示附加的删除消息。User无论如何,«destroy» 看起来是错误的,因为您没有发送删除消息UserModel来结束其生命,而只是发送正常消息。

唔。也许你UserModel就是它User本身?在这种情况下,您应该考虑更好地命名模型元素。虽然 MVC 似乎暗示你用相应的后缀调用你的类,但我认为这对 M 来说不是一个好主意。你见过每个类都用 Model 后缀的数据模型吗?


关于删除的更多信息。我浏览了规范并在第17.4 章消息下面找到了这些段落:

在此处输入图像描述

[...]

• 对象删除消息(messageSort 等于 deleteMessage)必须以 DestructionOccurrenceSpecification 结尾。

deleteMessage 是MessageSort枚举的一个属性:

• deleteMessage 指定终止另一个生命线的消息。

就是这样。没有提到要使用的刻板印象或关键字。这将是一个简单的消息(箭头),后跟X标记对象寿命的结束。

在此处输入图像描述

所以这为解释留下了一点空间。但是,没有提及与消息一起具有刻板印象/关键字«destroy»。如果您使用签名发送该操作,则该操作将被调用,并且该对象必须在完成后自行销毁。正如所写的那样,它是另一条生命线的终止,在调用操作时会自相矛盾,因为它需要在之后自毁。


就我个人而言,除非它很重要(对于内存管理和/或安全性),否则我不会显示对象及其破坏。(ìnitiateDeleteUser()又是一个坏名字,因为它确实删除了用户)在这里就足够了。


推荐阅读