Как представить if condition1 else if contion2 на диаграмме последовательности?

Мне было интересно, как можно представить оператор «if cond1 else if cond2» на диаграмме последовательности?

    if (condition1) {
      // Do something
    } else if(condition2)
    {
      // Do something else if
    }

Я не уверен, что это с двумя независимыми пунктами "Opt"

Если возможно, создайте изображение решения.


person Mauricio Pastorini    schedule 02.07.2016    source источник
comment
Я знаю, что это бесполезный комментарий, но я должен советовать против всего более сложного, чем простое если/иначе в диаграмме последовательности. Лично я бы даже не использовал if/else — просто сделал бы 2 диаграммы.   -  person jim    schedule 03.07.2016


Ответы (1)


В диаграмме последовательности можно использовать комбинированный фрагмент с оператором alt. Это позволяет показать альтернативное поведение:

  • Графически альтернативы находятся в мозаичных областях, разделенных пунктирными горизонтальными линиями.
  • Вы можете задокументировать точное условие для каждой альтернативы в охраннике (например, [condition]).

Пример:
введите здесь описание изображения

Дополнительное чтение:

person Christophe    schedule 02.07.2016
comment
Спасибо за ответ. Я рассматривал оператор alt, дело в том, что Alt предназначен для литерала If else, а в этой ситуации нет. Поэтому я думаю, что это должен быть лучший выбор. - person Mauricio Pastorini; 03.07.2016
comment
@MauricioPastorini Alt предназначен для выбора между несколькими альтернативами, а не только если еще. Защита [else] выполняется, если ни одна из всех других альтернатив не подходит. Таким образом, в вашем случае у вас будет 3 полосы (разделенные двумя пунктирными линиями). У первого будет охранник [condition1], у второго охранник [condition2] и у третьего [else]. - person Christophe; 03.07.2016
comment
Просто чтобы завершить предыдущий комментарий, у alt не обязательно должна быть опция, которая будет выполнена (т. Е. Все охранники могут разрешиться как false, и это абсолютно нормально). Раздел с охранником [else] является необязательным. - person Ister; 03.07.2016