在序列图中,我试图模拟一个创建一堆对象的循环。我在网上找到了关于在SD图中创建多个对象的小信息,所以我转向你。
课程是甲板和卡片
卡片由fillDeck()创建,由Deck的构造函数调用(FYI对象存储在Deck的arraylist中)。
有许多类型的卡具有不同的属性。假设我想要制作8张A型卡,12张B型和3张C型
我如何建模这样的东西?这是我到目前为止的想法,但它显然是不完整的。
希望有人可以帮忙!谢谢!
+------+ | Deck | +------+ | +--+-------+--------------+ | loop 8x / | +--+-----+ +----------+ | | |-------->| Card(A) | | | | +-----+----+ | +--+----------------------+ | | +--+--------+------|-----------------------+ | loop 12x / | | +--+------+ | +---------+ | | |------------------------->| Card(B) | | | | | +----+----+ | |--+---------------------------------------+ | | | | +--+-------+----------------------------------------------+ | loop 3x / | | | +--+-----+ | | +---------+ | | |--------------------------------------->| Card(C) | | | | | | +----+----+ | |--+------------------------------------------------------+ | | | |
答案 0 :(得分:1)
“序列图通过关注交换的消息序列及其在生命线上的相应OccurrenceSpecifications来描述交互。” (UML标准)生命线由一个对象定义。但这并不意味着您必须将所有对象保留在生命线中。您应该只显示这些生命线,即交换您正在考虑的消息。
您无需在一个图表上显示所有消息序列逻辑。在一个SD中,通常显示一个Interaction
。或者可能是其中的一小部分,如果它们很简单的话。
因此,如果您的SD显示一个逻辑概念,那么它是正确的。如果某些对象之间会有另一个交互,那么您将为此交互绘制另一个SD,并且只有对象参与此第二次交互。
UML标准2.5。图17.25-序列图中元模型元素的概述