2

在序列图中,我试图对创建一堆对象的循环进行建模。我在网上几乎没有找到关于在 SD 图中创建多个对象的信息,所以我求助于你。

课程是甲板和卡片

卡片由 fillDeck() 创建,由 Deck 的构造函数调用(仅供参考,对象存储在 Deck 的数组列表中)。

有许多类型的卡具有不同的属性。假设我要制作 8 张 A 类卡片,12 张 B 类卡片和 3 张 C 类卡片

我将如何去建模这样的事情?到目前为止,这是我的想法,但显然不完整。

希望有人能帮忙!谢谢!

    +------+
    | 甲板 |
    +------+
       |
    +--+--------+-------------+
    | 循环 8x / |
    +--+-----+ +---------+ |
    | |-------->| 卡(A) | |
    | | +-----+----+ |
    +--+--------------------------+
       | |
    +--+--------+------|------------------------+
    | 循环 12x / | |
    +--+------+ | +---------+ |
    | |-------------------------->| 卡(B) | |
    | | | +----+----+ |
    |--+----------------------------------------+
    | | | |
    +--+--------+-------------------------- --------+
    | 循环 3x / | | |
    +--+-----+ | | +---------+ |
    | |---------------------------------------------------->| 卡(C) | |
    | | | | +----+----+ |
    |--+---------------------------------------------- --------+
       | | | |

4

1 回答 1

1

“序列图通过关注交换的消息序列以及它们在生命线上的相应 OccurrenceSpecifications 来描述交互。” (UML 标准)生命线由一个对象定义。但这并不意味着您必须将所有对象保留在生命线中。您应该只显示这些生命线,它们正在交换您正在考虑的信息。

而且您不需要在一张图上显示所有消息序列逻辑。通常在一张 SD 中,您显示的是一张Interaction. 或者也许其中一些,如果它们很简单的话。

因此,如果您的 SD 显示的是一个逻辑概念,那么它是正确的。如果某些对象之间还会有另一次交互,那么您将为此交互绘制另一个 SD,并且将只有对象参与此第二次交互。

UML 标准 2.5。图 17.25 - 序列图的元模型元素概述

在此处输入图像描述

于 2014-03-06T09:09:25.003 回答