在 Visual Studio 2017 年的 class 图表中创建聚合和组合
Creating Aggregation and Composition in class diagram in Visual Studio 2017
我正在考虑在 Visual Studio 中创建一个 class 图表。我注意到工具箱似乎只允许 classes 之间的关联关系。
是否可以在 class 图中创建更强的关系,即聚合和组合关系?
此外,是否可以从代码自动创建 class 图?
好问题。
首先:Visual Studio(VS)Class设计师不是CASE Tools(像Enterprise Architect等)。
它只是源代码的 class 表示。这意味着 class 设计器中的 classes 始终与源代码中的 classes 同步。如果您删除源代码中的一些属性或方法,它将与 class 设计器同步,反之亦然。
其次:这个问题的答案隐藏在将Association和Aggregation(和Composition)映射到源代码中。
要将关联、聚合和组合映射到源代码,请参阅:Reference 1 and Reference 2。
在某些情况下,无法从源代码中检测 class 之间的关联、聚合或组合关系。
例如,下面代码中Customer
和Car
之间是什么类型的关系?
public class Customer {
private String name;
private String address;
private String contactNumber;
private Car car;
}
public class Car {
private String modelNumber;
private Customer owner;
}
可以是Association,也可以是Aggregation。
最后,由于上述第一个和第二个原因,Visual Studio Class 图没有聚合和组合。
我正在考虑在 Visual Studio 中创建一个 class 图表。我注意到工具箱似乎只允许 classes 之间的关联关系。
是否可以在 class 图中创建更强的关系,即聚合和组合关系?
此外,是否可以从代码自动创建 class 图?
好问题。
首先:Visual Studio(VS)Class设计师不是CASE Tools(像Enterprise Architect等)。
它只是源代码的 class 表示。这意味着 class 设计器中的 classes 始终与源代码中的 classes 同步。如果您删除源代码中的一些属性或方法,它将与 class 设计器同步,反之亦然。
其次:这个问题的答案隐藏在将Association和Aggregation(和Composition)映射到源代码中。
要将关联、聚合和组合映射到源代码,请参阅:Reference 1 and Reference 2。
在某些情况下,无法从源代码中检测 class 之间的关联、聚合或组合关系。
例如,下面代码中Customer
和Car
之间是什么类型的关系?
public class Customer {
private String name;
private String address;
private String contactNumber;
private Car car;
}
public class Car {
private String modelNumber;
private Customer owner;
}
可以是Association,也可以是Aggregation。
最后,由于上述第一个和第二个原因,Visual Studio Class 图没有聚合和组合。