在另一个 class 中使用 class 的实例是否算作依赖或关联?
Does using an instance of a class inside of another class count as dependency or association?
我很难弄清楚在另一个内部实例化一个 class 然后使用它的一些方法算作 UML class 图中的依赖关系还是关联关系。例如:
public class Example {
Thing thing = new Thing();
public void method() {
thing.doSomething();
}
}
这个关联是因为 Example “有一个” Thing 吗?或者这种依赖性是因为 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
...;
}
}
我很难弄清楚在另一个内部实例化一个 class 然后使用它的一些方法算作 UML class 图中的依赖关系还是关联关系。例如:
public class Example {
Thing thing = new Thing();
public void method() {
thing.doSomething();
}
}
这个关联是因为 Example “有一个” Thing 吗?或者这种依赖性是因为 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
...;
}
}