如果我有一个包含“委托”实例的“Foo”类。 Foo将方法调用委托给“Delegate”类,如下所示:
public class Foo {
private Delegate delegate = new Delegate();
public void bar() {
delegate.bar();
}
}
当我在UML中绘制Foo类时,它与它与Delegate类之间是否具有依赖关系(带箭头的虚线),或者它是否有代表组合关系的线?
答案 0 :(得分:1)
关于UML的好处是你有一些余地,但在你的情况下,恕我直言,依赖性更好。
您没有delegate
作为Foo
的属性(没有getDelegate
),因此没有人看着您的系统真正关心Foo
}由一个代表组成(除其他外)。
然后,如果您的UML图表被提供给可以从图表生成代码的工具,那么它可能会。 :)
对你给出图表的人(或代理人)做正确的事。
答案 1 :(得分:0)
在这种情况下我会使用构图关系。如果您还没有确定Foo是否包含Delegate实例,那么依赖关系就可以了。但是如果你已经做出了这个决定,那么隐藏附加信息没有任何好处,事实上它可能会产生误导(读者可能会认为它不是一个包容因素,如果它是,它将如此显示)