Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop UML-Object方法返回一个集合_Oop_Collections_Uml_Design Patterns - Fatal编程技术网

Oop UML-Object方法返回一个集合

Oop UML-Object方法返回一个集合,oop,collections,uml,design-patterns,Oop,Collections,Uml,Design Patterns,我如何指示方法将返回UML中的对象集合?有没有更好的方法来解释这种关系,而不是将集合类作为返回类型? ,可以考虑使用“关联”。关联有三种基本类型:组合、聚合和“正常”关联。它们都表达了整体对部分的不同存在依赖性,反之亦然 通常通过一条线连接两个类来表示关联。成分和骨料在复合材料/骨料一侧有一个菱形符号。复合材料/骨料由一个或多个部分组成。(见附件) 例如: 你有两门课:图书馆,书。我们可以说图书馆是整体,书籍是部分。我们可以这样标记它(在ASCII中,请搜索真实的图表) 图书馆(合计)——图书(

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

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

通常通过一条线连接两个类来表示关联。成分和骨料在复合材料/骨料一侧有一个菱形符号。复合材料/骨料由一个或多个部分组成。(见附件)

例如:

你有两门课:图书馆,书。我们可以说图书馆是整体,书籍是部分。我们可以这样标记它(在ASCII中,请搜索真实的图表)

图书馆(合计)——图书(部分)

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

编辑:


正如我在评论中所说的,我认为对于返回的集合没有特殊的标记。但是,您是对的,返回集合有点特定于语言。但是您可以考虑返回一个数组(<代码> String []/COD>),这是表示一组值的更一般的方式,并且应该比集合更独立于语言。然后由程序员决定如何实现它。他可以使用<代码>集合<代码>,一个C++ STL向量…关键是:返回一组值。

嗯,的确,在UML类图中没有明确的方法来表示集合类型。我读过一本书,他们在书中批评了UML,但他们提到,在UML的一些早期版本中有集合类型。另一件事是对象约束语言(OCL),它与UML(作为OMG标准)集成,并有自己的集合类型和良好的操作。

我来晚了一点,因为我正在寻找一个类似问题的答案。我写这封信是因为有人在寻找类似的答案

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

例如,使用Library--Book示例,假设Library上有一个名为GetBooks的方法,该方法接受一个字符串参数、作者姓名,并返回一组图书实例。UML看起来像这样:

图书馆 +GetBooks(authorName:string):书[0..*]


你的UML图表工具应该支持这一点;我在用魔术画。这个UML声明GetBooks返回0个或多个Book实例。现在由程序员决定如何在实现语言中实现返回参数(如Simon所述)。

有一种间接的方法来表示这一点

您可以定义另一个复合类,该复合类与您的特定返回类型具有1..*的复合关系,并使用此新的复合类作为您的返回类型


例如,如果要返回Book类集合,请创建一个与Book关联为1..*的新Books类,并使用Books类作为返回类型

是的,但是我如何表示一个方法正在返回那个关联呢?通常一个方法定义一个类的行为。因此,无法通过使用类图来表示该方法返回集合(除了指示其返回值之外)?我认为在UML中通常避免使用这种特定于语言的符号。这是有道理的。谢谢你的帮助!除了使用答案中讨论的返回类型之外,没有真正的替代方法。但也许标签“模式”在这里有点误导。