Если вы хотите модель два различных класса то на диаграмме последовательности это означало бы две различные линии жизни. Это все (насколько я знаю).
Вы можете показать любой <<stereotype>>
(включая <<abstract>>
) в голове спасательной как в этом примере: uml-diagrams.org: UML Sequence Diagrams Examples → Submit Comments to Pluck
Для примера, давайте предположим, что мы имеем это (бесполезные) C# код:
abstract class BaseClass
{
protected abstract string Name { get; }
public virtual void DoSomething()
{
Console.WriteLine("Something useful done.");
}
protected void SayHello(string to)
{
Console.WriteLine("Hi {0}, I'm {1}", to, this.Name);
}
}
class Case1 : BaseClass
{
protected override string Name { get { return "Case 1"; } }
public override void DoSomething()
{
base.DoSomething();
}
}
class Case2 : BaseClass
{
protected override string Name { get { return "Case 2"; } }
public void DoSomething(string to)
{
this.SayHello(to);
base.DoSomething();
}
}
class Program
{
static void Main(string[] args)
{
var c1 = new Case1();
var c2 = new Case2();
c1.DoSomething();
c2.DoSomething("Jane");
}
}
Тогда UML Диаграмма последовательности захвата, что происходит жгутов в Program.Main
может выглядеть следующим образом:
Я нарисовал абстрактный класс как неявный объект-друга, разделяющий время жизни (и большую часть памяти) с конкретным экземпляром класса. На самом деле, как наследование классов реализовано на некоторых языках, поэтому сценарий не полностью «составлен».
Однако уровень детализации может быть слишком сосредоточен на реализации, не оставляя места для полезной абстракции. Эта диаграмма не сохранилась бы даже при небольшом повторном факторинг кода
Способ сделать это - добавить для него отдельную линию жизни и показать сообщение для нее. Что касается стандартной нотации, которую вы видите в диаграммах классов и современных сущностей, я не уверен. SD должны быть простыми, основываясь на диаграммах, которые я видел, я думаю, что это было бы более подходящим для диаграммы классов. – ChiefTwoPencils
Я бы хотел не добавлять новую линию жизни, если я не смогу показать связь между абстрактными и конкретными классами. Однако я согласен с тем, что это скорее проблема диаграммы классов. –
Если вы хотите смоделировать два разных класса, то в диаграмме последовательности это означало бы два разных жизненных цикла. Вот и все. Вы можете показать любой '<>' (включая '<>') в голове жизненного цикла, как показано в этом примере: http://www.uml-diagrams.org/sequence-diagrams-examples.html#pluck-comments –
xmojmr