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


21

コンストラクターではなく、なぜJavaおよびC#の静的メインメソッドに対するgnatの答えを読んだ後ですか?彼の答えは、静的なmainメソッドを持つJavaクラスの目的は、define a program entry pointそれ自体がプログラムそのものではないことを意味すると考えています。

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

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

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

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


1
私は通常私に電話しますProgram
ロバートハーヴェイ

1
私はそれを呼び出しますがMain、通常は20行未満です(少しの例外をキャッチし、パラメーターを解析します)。
-assylias

最後に書いた5つはTest1、Test2、Test3、Test4、およびTest5でした:)いくつかの小さなテストを書いていましたが、とにかく使い捨てのコードなので説明的な名前を考えるのに時間をかけたくありませんでした。
ジュウェンティング

回答:


18

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

はい、このクラスには、アプリケーションをセットアップして起動するために必要な最小限のロジック/コードのみを含めるのが良いと思います。しかし、数千行の怪物に付けられた方法で、多くのゴッドオブジェクト泥の大きなボールがそこにあると確信していますmain


私はこれが数年後であることを知っていますが、あなたの最後の文は私を椅子から転落させました。笑ってくれてありがとう。
user0000001

@ user0000001:どういたしまして!
マイケルボルグ

9

それらは、メインと呼ばれるかどうかにかかわらず、メインクラスと呼ばれます。

彼らは通常、プログラムを起動するために必要なロジックを持っています。

CLIアプリでは、通常、パラメーターを検証します。

デスクトップアプリでは、メインメニューを開くか、メインウィンドウを開きます。

jarファイル内のMANIFESTファイルを読むと、それらがそれと呼ばれることがわかります。

Manifest-Version: 1.0
Created-By: xxx
Built-By: xxx
Build-Jdk: 1.6.0_04
Main-Class: myPackage.MenuLauncher
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.