UML для локальных переменных

Если у меня есть 2 класса Java, метод одного класса содержит переменную метода, которая является ссылкой на второй класс (не переменную экземпляра). Как связать эти классы на диаграмме UML? Я привожу пример для лучшего понимания вопроса:

class A{
     methodA(B b){
      <do something>
} 
}

class B{

}

person tural    schedule 01.05.2014    source источник


Ответы (2)


Это зависимость, своего рода слабые отношения. В этом случае он устанавливается только во время выполнения метода и обычно просто указывается общей зависимостью:

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

Более сильные виды отношений, такие как ассоциация или композиция, обычно предполагают переменные-члены.

person Aleks    schedule 01.05.2014
comment
Просто любопытно, почему стрелка не полная, как ассоциация. Я использую штриховую стрелку только для зависимостей, не используя экземпляр, например передачу в качестве параметра. - person Vincent; 15.08.2016

Если какой-либо класс содержит ссылку на любой другой класс (кроме переменной экземпляра), то эта связь известна как отношение композиции. Его можно изобразить в UML с помощью отношения классов. Черный ромб представляет композицию на диаграмме классов UML. Стрелка на другом конце связи означает, что связь доступна только в одном направлении.

person Anil Satija    schedule 01.05.2014
comment
Это неправда. Композиция указывает на самую сильную возможную связь типа Целое-Часть. В случае композиции Целое (здесь А) контролирует время жизни Части (здесь Б), что здесь явно не так. В этом случае у нас есть слабая и краткосрочная зависимость между A и B. См. мой ответ для примера. - person Aleks; 01.05.2014
comment
Агрегация: Один объект A имеет другой объект B или владеет им, и/или B является частью A. Композиция: Помимо отношения агрегации, время жизни объектов может быть одинаковыми или почти одинаковыми. Для справки проверьте Ref1. и Ref2 - person Anil Satija; 02.05.2014
comment
собственно, что как раз и подтверждает мой комментарий, в данном случае такой связи нет. :) И посмотрите на вторую диаграмму в Ref1 - как раз ситуация из вопроса и предложенное мной решение. Спасибо. :) - person Aleks; 02.05.2014