Convenzioni di denominazione per le classi Java che hanno un metodo principale statico?


21

Dopo aver letto la risposta di gnat a Perché un metodo statico principale in Java e C #, piuttosto che un costruttore? Prendo la sua risposta per dire che lo scopo di una classe Java con un metodo principale statico è define a program entry pointquello di non essere il programma stesso.

Potrebbe esserci un modo migliore per farlo, ma di solito ho la classe con il metodo statico principale per fare qualcosa di semplice come questo:

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

Il codice sopra sarebbe la migliore pratica per OOP in cui la classe con main statico non fa molto di più che avviare o avviare la logica del programma contenuta in un oggetto non statico separato; dopotutto il main è statico, quindi la classe MenuLauncher non sarebbe molto limitata? Poiché main è un punto di partenza, non vedo altro scopo per la classe se non quello di essere un punto di ingresso.

Esiste una convenzione di denominazione Java comunemente usata per le classi che contengono un metodo principale e hanno lo scopo di essere un punto di accesso al programma?


1
Di solito chiamo il mio Program.
Robert Harvey,

1
Lo chiamo Mained è generalmente lungo meno di 20 righe (con un po 'di rilevamento delle eccezioni e analisi dei parametri).
Assylias,

gli ultimi 5 che ho scritto sono stati Test1, Test2, Test3, Test4 e Test5 :) Stavo scrivendo alcuni piccoli test e non volevo perdere tempo a pensare a nomi descrittivi dato che era comunque un codice usa e getta.
jwenting

Risposte:


18

No, non esistono convenzioni di denominazione ampiamente utilizzate per questo. Esempi che ho visto sonoMain , Application, XLaunchero X, dove X è il nome del progetto / applicazione.

E sì, penso che sia giusto che questa classe contenga solo la logica / il codice minimo necessari per impostare l'applicazione e avviarla. Ma sono sicuro che ci sono molti oggetti God e Big Balls of Mud là fuori con un mainmetodo attaccato a una mostruosità su più di mille linee.


So che è successo qualche anno dopo, ma la tua ultima frase mi ha fatto cadere dalla sedia. Grazie per la risata.
user0000001,

@ user0000001: prego!
Michael Borgwardt,

9

Si chiamano Main-Class , indipendentemente dal fatto che siano chiamati Main e che facciano poco o molto.

Di solito hanno la logica richiesta per l'avvio del programma.

Nelle app CLI di solito convalidano i parametri.

Nell'app desktop aprono il menu principale come il tuo o aprono la finestra principale.

Se leggi i file MANIFEST in un file jar, scopriresti che si chiamano così.

Manifest-Version: 1.0
Created-By: xxx
Built-By: xxx
Build-Jdk: 1.6.0_04
Main-Class: myPackage.MenuLauncher
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.