web-dev-qa-db-ja.com

Java静的mainメソッドを持つクラスの命名規則?

gnatの答え を読んだ後 なぜ静的メインメソッドJavaとコンストラクターではなくC#か? 私は彼の答えをJava静的メインメソッドを持つクラスの目的はdefine a program entry pointとは、プログラム自体を意味するものではありません。

これを行うにはもっと良い方法があるかもしれませんが、私は通常、次のような簡単なことをするために静的メインメソッドを持つクラスを持っています:

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

上記のコードはOOP=のベストプラクティスですが、静的メインのクラスは、別の非静的オブジェクトに含まれるプログラムロジックの起動または開始以外のことは行いません。は静的であるため、MenuLauncherクラス自体は非常に制限されませんか?mainは開始点であるため、クラスのエントリポイント以外の目的はありません。

Java mainメソッドを含み、プログラムのエントリポイントであるという目的を果たすクラスに一般的に使用される命名規則はありますか?

21
Korey Hinton

いいえ、これについて広く使用されている命名規則はありません。私が見た例はMainApplicationXLauncherまたはXです。Xはプロジェクト/アプリケーションの名前です。

そして、はい、このクラスには、アプリケーションを設定して開始するために必要な最小限のロジック/コードのみを含めるのが良いと思います。しかし、たくさんの God ObjectsBig Balls of Mud) があり、mainメソッドが何千行もの怪物に追加されています。

18

それらは、Mainと呼ばれるかどうかに関係なく、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
9