UML - 对象方法返回一个Collection

der*_*ann 5 oop collections uml design-patterns

如何指示方法将返回UML中的对象集合?有没有更好的方法来解释关系而不是将集合类作为返回类型?

Rob*_*tMS 7

我有点迟到了,因为我正在寻找类似问题的答案.我正在写这个,其他人正在寻找类似的答案.

是否要指示方法返回特定类型的集合?如果是这样,对于方法,您应该能够将返回参数的类型和返回参数的多样性设置为0 ..*或1 ..*.这表明该方法返回指定的类型,并且它具有您声明的任何多重性.

例如,使用Library <> --- Book示例,假设在Library上有一个名为GetBooks的方法,它接受一个字符串参数,作者名称,并返回一个Book实例的集合.UML看起来像这样:

Library + GetBooks(authorName:string):Book [0 ..*]

你的UML图表工具应该支持这个; 我正在使用Magic Draw.此UML声明GetBooks返回0或许多Book实例.现在由程序员决定如何在实现语言中实现返回参数(如Simon所述).


Sim*_*mon 5

您可以考虑使用“关联”。关联有三种基本类型:组合、聚合和“正常”关联。它们中的每一个都表达了整体对部分的不同存在依赖,反之亦然。

通常关联是通过用线连接两个类来表达的。组合物和聚集体在复合材料/聚集体一侧有一个菱形符号。复合材料/骨料由一个或多个部分组成。(参见维基文章

例子:

想象一下你有两个类:图书馆、书籍。我们可以说图书馆是整体,书籍是部分。我们可以这样表示(用 ASCII,请谷歌搜索真实图表)。

图书馆(总​​计)<>---书籍(部分)

如果你想表达这些关系,协会将是你的朋友。

编辑:

正如我在评论中所说,我认为返回的集合没有特殊的符号。但是,你是对的,返回 Collection 是特定于语言的。但您可能会考虑返回一个数组 ( String[]),这是表示一组值的更通用方法,并且应该比 Collection 更独立于语言。然后由程序员决定如何实现它。他可能会使用一个CollectionC++ STL 向量……要点是:返回一组值。