Как мне моделировать (UML, Class Diagram) объект, который используется в методе - PullRequest
0 голосов
/ 05 марта 2020

Я работаю над диаграммой классов для существующего приложения (C#) и борюсь со следующим:

Допустим, у вас есть два класса A и B. Класс B содержит метод foo, который возвращает список A объектов ::

public class A { string V {get; set;} }

public class B { 
    string W {get; set;} 

    public List<A> foo(JObject bar) { /* do something */ }
}

Какое отношение имеет A к B в этом случае, когда это моделируется в UML?

Сначала я подумал, что это будет отношение один ко многим, когда метод возвращает список (один или несколько ...) из A. Потому что, когда у вас есть атрибут списка в классе, это обычно отношение один ко многим. Тем не менее, я не знаю, является ли это тем же случаем.

В приложении класс A используется только через метод foo(), поэтому было бы странно связывать его ни с чем так как тогда это был бы просто отдельный класс, который я тоже считаю неправильным.

1 Ответ

2 голосов
/ 05 марта 2020

Единственное, что мы можем сказать наверняка, это то, что B использует A: B нужно знать о A, поскольку он возвращает их список.

Этот тип отношений называется зависимостью : точнее, это «use» зависимость . Зависимость не имеет кратности: нет разницы, если B использует несколько раз A или только один раз; зависимость просто означает, что она должна знать о A.

enter image description here

Если бы у вас была ассоциация один-ко-многим между B и A, это означало бы что структурная связь: в данный момент времени экземпляр B может быть связан с некоторыми экземплярами A s. Возврата одного или нескольких A недостаточно для создания ссылки, поскольку каждый созданный и возвращенный A может быть отключен от B, и как только A будет возвращен, B также не сможет найти их обратно. Нет ссылки, нет ассоциации. Ассоциация потребует чего-то более долговечного, сопоставимого с собственностью .

...