2014-03-05 122 views
1

在一個序列圖中,我試圖對一個創建一堆對象的循環進行建模。我發現很少有關於在SD圖中創建多個對象的信息,所以我轉向你。uml序列圖:在一個循環中創建對象

中的類和甲板卡

卡由fillDeck(),它是由甲板的構造(FYI的對象被存儲在甲板一個ArrayList)稱爲創建。

有許多類型的卡具有不同的屬性。假設我想要8個A型卡,B型12個和C型3個

我該如何去建模這樣的事情?這是我迄今爲止想到的想法,但它顯然是不完整的。

希望有人能幫助!謝謝!

 
    +------+ 
    | Deck | 
    +------+ 
     | 
    +--+-------+--------------+ 
    | loop 8x/    | 
    +--+-----+ +----------+ | 
    | |-------->| Card(A) | | 
    | |   +-----+----+ | 
    +--+----------------------+ 
     |    | 
    +--+--------+------|-----------------------+ 
    | loop 12x/  |      | 
    +--+------+  |   +---------+ | 
    | |------------------------->| Card(B) | | 
    | |    |   +----+----+ | 
    |--+---------------------------------------+ 
    | |    |    | 
    +--+-------+----------------------------------------------+ 
    | loop 3x/  |    |      | 
    +--+-----+   |    |  +---------+ | 
    | |--------------------------------------->| Card(C) | | 
    | |    |    |  +----+----+ | 
    |--+------------------------------------------------------+ 
     |    |    |    | 

+0

爲什麼你覺得它「顯然是不全面」的元模型元素的概況? –

+0

我只有3個生命線,而我有23個對象。請注意,擁有23條生命線會變得混亂不堪,但現在的方式,我不相信它正確地代表了更多的對象被創建。 – chaixdev

+0

哦,愚蠢的我,我忘記了:+1並歡迎來到StackOverflow! – Gangnus

回答

1

「的序列圖通過專注於被交換,以對生命線它們相應OccurrenceSpecifications沿着消息的序列描述了一種相互作用。」 (UML標準)生命線由一個對象定義。但這並不意味着你必須將所有物體都保存在生命線中。你應該只顯示這些生命線,這是交換你正在考慮的信息。

而且您不需要在一個圖上顯示所有消息序列邏輯。在一個SD中,通常你會顯示一個Interaction。或者,如果他們很簡單,也許還有一些。

因此,如果您的SD顯示出一個邏輯概念,那麼它是正確的。如果在某些對象之間會有另一個交互,那麼您將爲此交互繪製另一個標記,並且將只有對象參與第二次交互。

UML標準2.5。圖17.25 - 的序列圖

enter image description here

+0

謝謝! 將焦點從對象本身轉移到由它們交換的消息是有意義的。畢竟,要顯示對象/類之間的關係,我們已經擁有了DCD和其他的 – chaixdev

+0

@QualiosRex當然。順便說一句,如果你想單獨分析對象,有對象診斷它。爲了徹底分析一個或兩個類,有一個複合結構診斷。 – Gangnus