具有静态main方法的Java类的命名约定?


21

在阅读gnat的答案后为什么在Java和C#中使用静态main方法而不是构造函数?我以他的回答来表示带有静态main方法的Java类的目的是to define a program entry point,而不是要成为程序本身。

可能有更好的方法来执行此操作,但是我通常使用带有静态main方法的类来执行以下简单操作:

public class MenuLauncher
{
    public static void main(String[] args) {
        Menu menu = new Menu();
        menu.run();
    }
}

上面的代码是否是OOP的最佳实践,在这种情况下,具有静态main的类所做的仅是启动或启动包含在单独的非静态对象中的程序逻辑;毕竟main是静态的,所以MenuLauncher类本身不会受到很大限制吗?因为main是一个起点,所以除了作为切入点之外,我没有看到任何其他目的。

是否存在Java命名约定,通常用于包含main方法并用作程序入口点的类的类?


1
我通常打电话给我Program
罗伯特·哈维

1
我称之为它Main,通常少于20行(带有一些异常捕获和参数解析)。
assylias

我写的最后5个是Test1,Test2,Test3,Test4和Test5 :)正在编写一些小型测试,并且不想花时间去思考描述性名称,因为无论如何它都是可丢弃的代码。
jwenting

Answers:


18

不,没有广泛使用的命名约定。我见过的例子是MainApplicationXLauncher或者X,其中X是项目/应用程序的名称。

是的,我认为对于此类而言,仅包含设置应用程序并启动它所需的最少逻辑/代码是一件好事。但是我敢肯定,那里有很多“ 上帝之物”“泥浆大球”,并采用了一种main方法来处理数千行怪兽。


我知道这是几年后的事,但是您的最后一句话使我从椅子上摔下来。谢谢你的笑声。
user0000001

@ user0000001:不客气!
Michael Borgwardt '18

9

它们被称为Main-Class,无论它们是否被称为Main-Class,或者它们是否做得很少或太多。

它们通常具有启动程序所需的逻辑。

他们通常在CLI应用程序中验证参数。

在桌面应用程序中,他们会像您一样打开主菜单或打开主窗口。

如果您在jar文件中读取MANIFEST文件,则会发现它们被称为。

Manifest-Version: 1.0
Created-By: xxx
Built-By: xxx
Build-Jdk: 1.6.0_04
Main-Class: myPackage.MenuLauncher
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.