在另一个类中使用类的实例是否算作依赖项或关联?
我很难弄清楚,在另一个类中实例化一个类,然后使用它的一些方法在UML类图中算得上是依赖还是关联。例如:
public class Example {
Thing thing = new Thing();
public void method() {
thing.doSomething();
}
}
此关联是因为示例";具有";内容吗?或者,这种依赖关系是因为Example具有使用";Thing才能正常工作的方法?
解决方案
在UML中,您将使用Example
和Thing
之间的关联来表示:
- 纯粹主义者会建议dot notation,并在
Thing
末尾加上一个小点:这表明Example
拥有关联的末尾。并非所有建模工具都支持此表示法。 - 由于
Example
的实例将始终知道Thing
的实例,但可能不知道相反的情况,因此您可能希望将此关联显示为可导航的(末尾打开的箭头)。
关联隐含依赖关系。因此,您不应该向关系图中添加冗余依赖项。没有关联的依赖项将如下所示:
public class Example {
Thing thing = new Thing(); // Example is associated to Thing
public void method(AnotherThing x) { // Example depends on AnotherThing
...;
}
}
相关文章