class 和它在另一个对象的创建中创建的对象的 UML 关系?

UML relationship of class and object it creates inside the creation of another object?

例如,在java中:

public class App {

    public void method() {

        Object1 o1 = new Object1(new Object2(parameters));
    }

}

我知道App和Object1有组合关系

但是 App 和 Object2 呢?也是作文吗?

在方法中使用 class 不足以建立关联

您的 class App 没有 class Object1Object2 的字段。它只是在方法的实现中使用 Object1Object2 。这不足以建立关联:AppObjectX 之间没有概念关系;这只是一个实现细节。而且由于组合是一种特殊的关联,所以也没有组合。

使用class意味着依赖

因为你的App使用了Object1Object2,所以有一个«use»dependencyApp需要知道这些classes。您可以用开放的虚线箭头显示这种依赖关系。

但是,您示例中的依赖性仅在方法实现级别,而不是 class 本身级别。您可以以其他方式实现该方法。因此,我建议不要在您的模型中表现出这种不稳定的依赖性。如果 class 定义本身将使用这样的对象(例如,如果一个方法将 return 一个 ObjectX 或使用一个 ObjectX 参数),则依赖性是可取的。

术语:并非所有作品都是作品!

如前所述,这里没有合成。尽管如此,这个词还是有歧义的:

  • 可能意味着 object compostion。这只是关于具有另一个 class.
  • 字段的对象
  • 可能意味着 UML composition。这是一种具有排他性所有权的特殊协会