2011-08-20 86 views
0

如果我有一个包含“委托”实例的类“Foo”。富委托方法调用类“代表”,例如:UML依赖关系 - 我应该在这里使用它吗?

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

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

当我在UML绘制Foo类,将它有它和委托类之间的依赖关系(带箭头的虚线),或将它有一条代表构成关系的线条?

回答

1

关于UML的好处是你有一些余地,但在你的情况下,恕我直言,依赖关系更好。

你没有delegateFoo的属性(有没有getDelegate),所以没有人在看你的系统会真的在意一个Foo是由委托的(除其他事项外)。然后,如果你的UML图被赋予了一个可以从图中生成代码的工具,那么它可能会如此。 :)

做什么感觉正确的人(或代理)你是谁给图。

+0

我不会使用缺少吸气剂作为强有力的指标。我从来不喜欢UML中的依赖关系。面向对象的基本知识已经被充分地涵盖了,所以我在做非面向对象建模时主要使用它们。但如果没有人需要知道Foo在内部做了什么,那么我不会争辩;) – ShiDoiSi

0

我会在这种情况下使用构图关系。如果您还没有确定Foo是否包含Delegate实例,那么依赖关系就没有问题。但是,如果你已经做出了这个决定,那么隐藏附加信息并没有什么好处,实际上它可能是误导性的(读者可能会认为它不是一个遏制因果,如果它是这样的话) 。

+0

嗨。我已经决定Foo *将包含一个Delegate的实例。那么,它应该作为一个依赖吗?谢谢 – Joeblackdev

+0

在这种情况下,我会使用组合关系。 –