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
Java 驱动程序类(主类)是关联、聚合还是组合?_Java_Oop_Class_Object_Uml - Fatal编程技术网

Java 驱动程序类(主类)是关联、聚合还是组合?

Java 驱动程序类(主类)是关联、聚合还是组合?,java,oop,class,object,uml,Java,Oop,Class,Object,Uml,我一直想知道主类(控制非GUI程序中的所有其他类)与其他类之间有什么样的关系 例如,在包含主方法的类中实例化的类以及主方法与之交互的类,例如获取返回值 编辑:它甚至应该包含在UML中吗?因为我的教授包括它(我甚至不知道它被称为司机课),而我读的书显然没有包括它,不,这不是家庭作业 它可以是一个关联,因为它与之交互。它也可以是聚合,因为它由一个类中的几个部分组成。没有它(在程序实现中)类就没有意义,所以我认为它的组合是因为组合是一种聚合,而聚合又是一种关联。虽然已经发布了一些回复,但听起来我的答案

我一直想知道主类(控制非GUI程序中的所有其他类)与其他类之间有什么样的关系

例如,在包含主方法的类中实例化的类以及主方法与之交互的类,例如获取返回值

编辑:它甚至应该包含在UML中吗?因为我的教授包括它(我甚至不知道它被称为司机课),而我读的书显然没有包括它,不,这不是家庭作业


它可以是一个关联,因为它与之交互。它也可以是聚合,因为它由一个类中的几个部分组成。没有它(在程序实现中)类就没有意义,所以我认为它的组合是因为组合是一种聚合,而聚合又是一种关联。虽然已经发布了一些回复,但听起来我的答案是错误的。

这只是一个kickstarter类,您可以修改它以获取其中任何一个,但最好将其保留为初学者,并从中构建类范例。主要的方法是静态的。所以它不属于任何物体。所以你没有任何关联。main方法使用其他类的实例,仅此而已。

main类根本不需要实例化,因此它不一定属于UML图中的任何地方,但它可以实例化,并与程序的其余部分建立任何关系。这本书和你的老师可能都适合他们各自的情况


顺便说一句,不要将类之间的关联与
static
方法
main
引用的内容相混淆。
main
方法本身肯定是UML范式之外。

关于在UML中包含它,为什么不应该包含它呢。研究不同的设计模式-你将了解它们之间的关系和用法


这可能会帮助你

你自己怎么想,为什么这么想?既然你知道这三个术语,你可能也知道它们各自的意思。(这听起来像是家庭作业,这就是我问这个问题的原因)@SimonAndréForsberg haha我已经发布了我的答案,尽管我似乎错了,因为其他回答说这不关我的事。在你第一次编辑之后,我可以看出这可能不是家庭作业,而是一种真正的兴趣。这是一个好问题+1.假设您必须为基于控制台的Tictatcoe游戏制作一个UML类图,其中主要方法处理输入。在类图中可能需要它。在这个问题上,您也可以将它放在序列图中。@SotiriosDelimanolis您不可能在UML图中需要一个甚至没有实例化的类。这个类根本不参与类图所模拟的宇宙的方面。我有时使用UML来描述设计的某些部分,这些部分用图来解释比用代码或文本描述更好。我不在乎图表是否不能准确地表示代码的作用,因为对我来说重要的是显示全局。如果我真的要在序列图中展示这一点,我可能会在序列图中使用一个名为“main”的假对象或参与者。它不会出现在任何类图中。您不需要实例化一个类,就可以让它属于类图。虽然它可能不是OOP,但仍然静态地使用一些类。UML类图不是领域模型图。它对体系结构进行建模,起点是体系结构的一部分。如果你只想在设计中描述一些逻辑,我同意你的观点,但是一个完整的图表应该包含主要内容。@SotiriosDelimanolis UML类图(可能很不幸)没有提供一种对非实例建模的方法。人们可能会滥用形式主义来理解要点(毕竟,UML应该是关于交流的,而不是关于形式规范),但就形式主义而言,大学课程中教授的形式主义是不会发生的。