Dependencies UML依赖关系-我应该在这里使用它吗?

Dependencies UML依赖关系-我应该在这里使用它吗?,dependencies,uml,delegation,Dependencies,Uml,Delegation,如果我有一个包含“Delegate”实例的类“Foo”。Foo将方法调用委托给类“Delegate”,如下所示: 当我在UML中绘制Foo类时,它与委托类之间是有依赖关系(带箭头的虚线),还是有一条表示组合关系的线?UML的优点是你有一些回旋余地,但在你的情况下,依我看,依赖性更好 您没有委托作为Foo的属性(没有getDelegate),因此查看您的系统的任何人都不会真正关心Foo是否由委托(以及其他内容)组成 同样,如果您的UML图被提供给一个从图中生成代码的工具,它可能会: 做你给图表的人

如果我有一个包含“Delegate”实例的类“Foo”。Foo将方法调用委托给类“Delegate”,如下所示:


当我在UML中绘制Foo类时,它与委托类之间是有依赖关系(带箭头的虚线),还是有一条表示组合关系的线?

UML的优点是你有一些回旋余地,但在你的情况下,依我看,依赖性更好

您没有
委托
作为
Foo
的属性(没有
getDelegate
),因此查看您的系统的任何人都不会真正关心
Foo
是否由委托(以及其他内容)组成

同样,如果您的UML图被提供给一个从图中生成代码的工具,它可能会:


做你给图表的人(或代理人)觉得合适的事。

在这种情况下,我会使用组合关系。如果您还没有决定Foo是否包含委托实例,那么依赖关系就可以了。但是如果你已经做出了决定,那么隐藏额外的信息是没有好处的,事实上它可能会误导读者(读者可能会认为它不是一个遏制,因为如果它是,它会被显示为这样)。

我不会用缺少getter作为一个强有力的指标。我自己从来没有那么喜欢UML中的依赖关系。OO中的基本内容已经充分涵盖,所以我在进行非OO建模时主要使用它们。但是,如果没有人需要知道Foo在内部做什么,那么我不会争辩;)你好我已经决定Foo将包含Delegate的一个实例。那么,它是否应该作为一种依赖关系存在?谢谢在这种情况下,我会使用组合关系。
public class Foo {
   private Delegate delegate = new Delegate();

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