策略序列图
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 中存在的大部分(如果不是全部)元素的描述,遵循规范,有时还引用其他来源。
我正在尝试创建一个时序图,但我不确定我做的是否正确,因为 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 中存在的大部分(如果不是全部)元素的描述,遵循规范,有时还引用其他来源。