UML зависимость отношения - я должен использовать это здесь? - PullRequest
0 голосов
/ 20 августа 2011

Если у меня есть класс «Foo», который содержит экземпляр «Delegate».Foo делегирует вызовы методов для класса «Delegate» следующим образом:

public class Foo {
   private Delegate delegate = new Delegate();

   public void bar() {
      delegate.bar();
   }
}

Когда я рисую класс Foo в UML, будет ли у него отношение зависимости (пунктирная линия со стрелкой) между ним и классом Delegate,или вместо него будет строка, представляющая отношение Composition?

Ответы [ 2 ]

1 голос
/ 20 августа 2011

Приятной особенностью UML является то, что у вас есть некоторая свобода действий, но в вашем случае, IMHO, зависимость лучше.

У вас нет delegate в качестве свойства Foo (getDelegate) нет, поэтому никому не нужно смотреть на вашу систему, и на самом деле все равно, что Foo состоит из делегата (среди прочего).

Опять же, если ваша UML-диаграмма была переданаинструмент, который будет генерировать код из диаграммы, это может.:)

Делайте то, что кажется правильным людям (или агентам), которым вы даете диаграмму.

0 голосов
/ 21 августа 2011

Я бы использовал композиционные отношения в этом случае.Если вы еще не решили, будет ли Foo содержать экземпляр Delegate, тогда отношения с зависимостями в порядке.Но если вы уже приняли это решение, то скрывать дополнительную информацию не имеет смысла, ведь она может вводить в заблуждение (читатель может подумать, что она НЕ является защитной, потому что в противном случае она будет показана как таковая).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...