策略序列图

Strategy Sequence Diagram

我正在尝试创建一个时序图,但我不确定我做的是否正确,因为 Sorter Class 中的 Sort 函数内部有例如 DownComparer 策略,该策略将被多次调用。 ShouldSwap 的 Arrows 和 SortStrategy->Sorter 的 return bool 值应该看起来像我做的还是应该像其他东西?

public class Sorter
{
    public IComparer m_Comparer { get; set; }

    public Sorter(IComparer i_Comparer)
    {
        m_Comparer = i_Comparer;
    }

    public void Sort(ref ListBox i_ListBox)
    {
        for (int i = 0; i < i_ListBox.Items.Count - 1; i++)
        {
            for (int j = i + 1; j < i_ListBox.Items.Count; j++)
            {
                if (m_Comparer.ShouldSwap(i_ListBox.Items[i] as Group, i_ListBox.Items[j] as Group))
                {
                    doSwap(i_ListBox.Items, i, j);
                }
            }
        }
    }

    private void doSwap(ListBox.ObjectCollection i_Items, int i_Index1, int i_Index2)
    {
        object temp = i_Items[i_Index1];
        i_Items[i_Index1] = i_Items[i_Index2];
        i_Items[i_Index2] = temp;
    }
}

我假设这里的想法是重复 ShouldSwap 直到它 returns false (或 true 取决于你如何写它)。如果是,那么您应该使用 Combined Fragment.

显示一个循环

目前我手边没有 UML 绘图工具,但您可以在 uml-diagrams.org page 上阅读有关此特定组合片段类型(循环)的示例。总的来说,我推荐它用于研究,因为它包含对 UML 中存在的大部分(如果不是全部)元素的描述,遵循规范,有时还引用其他来源。