在另一个类中使用类的实例是否算作依赖项或关联?类中、实例

2023-09-04 01:27:14 作者:他曾是我的溫暖

我很难弄清楚,在另一个类中实例化一个类,然后使用它的一些方法在UML类图中算得上是依赖还是关联。例如:

public class Example {
    Thing thing = new Thing();

    public void method() {
            thing.doSomething();
    }
}
此关联是因为示例";具有";内容吗?或者,这种依赖关系是因为Example具有使用";Thing才能正常工作的方法?

推荐答案

在UML中,您将使用ExampleThing之间的关联来表示:

纯粹主义者会建议dot notation,并在Thing末尾加上一个小点:这表明Example拥有关联的末尾。并非所有建模工具都支持此表示法。 由于Example的实例将始终知道Thing的实例,但可能不知道相反的情况,因此您可能希望将此关联显示为可导航的(末尾打开的箭头)。 软件设计之UML UML中的六大关系

关联隐含依赖关系。因此,您不应该向关系图中添加冗余依赖项。没有关联的依赖项将如下所示:

public class Example {
    Thing thing = new Thing();             // Example is associated to Thing

    public void method(AnotherThing x) {   // Example depends on AnotherThing
            ...;
    }
}