Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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 - Fatal编程技术网

如何整合Java';你设计的主要功能是什么?

如何整合Java';你设计的主要功能是什么?,java,oop,Java,Oop,实际上,你可以跳过第一部分,因为它会让人困惑,但我会把它放在这里,因为我想知道其他人是否也有同样的感受。我是一名CS本科生,已经使用Java 3年了,我仍然觉得很难理解如何将主要功能包含到我的设计中。单独将它放在一个类中感觉是错误的,但将它插入另一个类文件也感觉是错误的。我认为后者是这样的,因为它不适合班上的其他同学,因此不连贯。例如,我不能只在DocumentReader对象上粘贴一个主函数。这与物体无关。另一方面,我不能只创建一个只有一个主函数的主类,因为在面向对象编程中,你应该从对象的角度

实际上,你可以跳过第一部分,因为它会让人困惑,但我会把它放在这里,因为我想知道其他人是否也有同样的感受。我是一名CS本科生,已经使用Java 3年了,我仍然觉得很难理解如何将主要功能包含到我的设计中。单独将它放在一个类中感觉是错误的,但将它插入另一个类文件也感觉是错误的。我认为后者是这样的,因为它不适合班上的其他同学,因此不连贯。例如,我不能只在DocumentReader对象上粘贴一个主函数。这与物体无关。另一方面,我不能只创建一个只有一个主函数的主类,因为在面向对象编程中,你应该从对象的角度来思考,有效地在你的头脑中创建一个微型世界。让这个微型世界围绕着一个只存在而不存在的单一物体旋转似乎是不可能的。它不会在故事中扮演叙述者和角色,因为它同时什么都不做。我更喜欢C的风格,它有一个独立于一切的主函数。它将故事的叙述与相互作用的角色分开


我想知道专业人士是如何将主方法混合到他们代码的其余部分的。如何使其与设计的其余部分相适应。此外,它们通常是长的还是短的?

嗯,我有时喜欢创建一个
*应用程序
类并将其放在那里。对于DocumentReader,我将有一个
DocumentReaderApplication
,在那里我将放置主函数,并且还可以处理任何启动选项/命令行参数。如果是GUI应用程序,
*应用程序
类将启动主窗口。毕竟,程序的入口点必须在某个地方,对吗?

我将
main()
函数保存在名为我的项目的类中。当您使用键入的命令行启动应用程序时,使用此选项:

java com.domain.project.ApplicationName
在我看来,有一个简单的启动器名称,而不是:

java com.domain.project.AClassWhichDoesntLookLikeAMainClass
还是(太)经典

但是不要为这个类操心太多,最终用户可能永远不会像这样执行它。脚本或其他可执行文件大部分时间都会启动它


另一方面,main()方法可能会变得很繁重,特别是如果您确实使用main args来获得更多CLI选项。也许它应该拥有自己的类。

带有main方法的类充当入口点。所以把所有东西都放在这个类中是个好主意,它是特定于那个入口点的。把剩下的委派出去。

我把它放在一个
程序
类中,在那里它将是单独的。它通常只是启动我的主窗口,然后在窗口退出时退出。

主方法仅在您自己启动独立应用程序时使用。对于大型应用程序来说,世界正在远离这一点,因为它们变得如此庞大,所以需要模块化


常用的方法是Java EE的WAR/EAR和OSGi捆绑包。

硬核OOP的人可能不喜欢这样,但我的根项目包中有一个名为
Main
的类,它包含Main方法


我的想法是,你的程序需要从某个地方开始,但把它放在另一个类中只是让人困惑。我将
Main()
视为一种特殊情况,应该有自己的类别。在这个类中,除了设置信息,我什么都没有放。这清楚地表明,这是我整个计划的起点(有时是终点)

我从事Java web开发工作,多年来一直从事此项工作

我从未专业地输入过“public static void main”一词


在ant任务触发单元测试和其他本地任务之间,然后将WAR存档部署到服务器,main方法不属于web工作的范围。

在main()方法中保留最少的代码。使用委托,因为它有助于在发生错误时定位您的问题。如果在Main类或Main()方法中添加业务逻辑,甚至UI代码,它会增长。这适用于面向对象的方法以及过程编程。

我在每一个其他类中都包含一个main方法,它可能具有一些合理的独立行为,并且仅用于简单的测试目的。

99%的时间项目名称=应用程序名称是,但出于1%的考虑,我更喜欢明确地说
project.ApplicationName
,即使当project name=application name时它是多余的。我喜欢让我的主方法尽可能短,并在工厂中进行复杂的对象构造。
java com.domain.project.Launcher