Après avoir lu réponse de moucheron à Pourquoi une méthode principale statique en Java et C #, plutôt qu'un constructeur? Je suppose que sa réponse signifie que le but d'une classe Java avec une méthode principale statique est de define a program entry point
et qu'il n'est pas censé être le programme lui-même.
Il peut y avoir une meilleure façon de le faire, mais j'ai généralement la classe avec la méthode principale statique pour faire quelque chose de simple comme ceci:
public class MenuLauncher
{
public static void main(String[] args) {
Menu menu = new Menu();
menu.run();
}
}
Le code ci-dessus serait-il la meilleure pratique pour OOP où la classe avec statique principal ne fait pas beaucoup plus que lancer ou démarrer la logique du programme contenue dans un objet non statique séparé; après tout principal est statique, donc la classe MenuLauncher elle-même ne serait-elle pas très limitée? Puisque main est un point de départ, je ne vois pas d'autre but pour la classe que d'être un point d'entrée.
Existe-t-il une Java couramment utilisée pour les classes qui contiennent une méthode principale et servent à être un point d'entrée de programme?
Non, il n'y a pas de convention de dénomination largement utilisée pour cela. Les exemples que j'ai vus sont Main
, Application
, XLauncher
ou X
, où X est le nom du projet/de l'application.
Et oui, je pense qu'il est bon que cette classe ne contienne que le minimum de logique/code nécessaire pour configurer l'application et la démarrer. Mais je suis sûr qu'il y a beaucoup de God Objects et Big Balls of Mud là-bas avec une méthode main
clouée sur une monstruosité de plusieurs milliers de lignes.
Ils sont appelés Main-Class, qu'ils soient ou non appelés Main et qu'ils fassent peu ou beaucoup.
Ils ont généralement la logique requise pour démarrer le programme.
Dans les applications CLI, ils valident généralement les paramètres.
Dans l'application Desktop, ils ouvrent le menu principal comme le vôtre ou ouvrent la fenêtre principale.
Si vous lisez les fichiers MANIFEST dans un fichier jar, vous constaterez qu'ils s'appellent ainsi.
Manifest-Version: 1.0
Created-By: xxx
Built-By: xxx
Build-Jdk: 1.6.0_04
Main-Class: myPackage.MenuLauncher