UML-диаграмма для аргумента метода

Допустим, у меня есть следующий код:

class A {
public:
void doSomething(B* b);
}

class B {
}

Как бы я описал это в диаграмме UML? Сначала я подумал, что A использует B, поэтому должна быть пунктирная линия от A до B. Но в некоторых школьных документах (это очень маленькая часть отчета о школьных заданиях) они, кажется, используют символ агрегирования (пустой ромб и сплошная линия).

Это не кажется мне правильным — если A фактически содержит указатель на B как член, это кажется правильным. Но когда только некоторые методы используют указатель на B и не сохраняют его в каких-либо переменных-членах, это кажется неправильным.

Что здесь?

(Я мог бы спросить своих учителей, но они обычно очень долго отвечают на вопросы такого типа … и, честно говоря, я больше доверяю коллективному интеллектуальному доверию Stackoverflow :))

2

Решение

Вы должны использовать простую зависимость между A и B:

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

A просто использует B в качестве параметра в операции. Если у вас есть какой-либо атрибут типа B, вы должны использовать ассоциацию. Агрегация дает лишь небольшую дополнительную семантику, и вы можете (/ должны) ее исключить, если вы не знаете, что хотите передать какую-то конкретную информацию.

4

Другие решения

Там не должно быть никакой стрелки между class A а также class B, Стрелки между классами используются для обозначения «ассоциаций».

Ассоциация указывает, что система, которую вы разрабатываете, хранит
ссылки какого-то рода между экземплярами связанных типов.

Источник: Свойства ассоциаций на диаграммах классов UML

Чтобы захватить / представить void doSomething(B* b); Вы можете попробовать использовать диаграмму активности, для более подробной информации эта ссылка.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector