Convenções de nomenclatura para classes Java que possuem um método principal estático?

21

Depois de ler a resposta do gnat para Por que um método principal estático em Java e C #, em vez de um construtor? Entendo sua resposta como significando que o objetivo de uma classe Java com um método principal estático é define a program entry pointe que ele não deve ser o próprio programa.

Pode haver uma maneira melhor de fazer isso, mas geralmente tenho a classe com o método principal estático para fazer algo simples como este:

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

O código acima seria a melhor prática para OOP onde a classe com static static não faz muito mais do que iniciar ou iniciar a lógica do programa contida em um objeto não estático separado; afinal main é estático, então a classe MenuLauncher não seria muito limitada? Como main é um ponto de partida, não vejo outro propósito para a classe que não seja um ponto de entrada.

Existe uma convenção de nomenclatura Java comumente usada para classes que contêm um método principal e servem como um ponto de entrada do programa?

Korey Hinton
fonte
1
Eu costumo chamar de meu Program.
22713 Robert Harvey
1
Eu chamo Maine geralmente tem menos de 20 linhas (com uma exceção de captura e análise de parâmetros).
assylias
os últimos 5 que escrevi foram Teste1, Teste2, Teste3, Teste4 e Teste5 :) Estava escrevendo alguns testes pequenos e não queria gastar tempo pensando em nomes descritivos, pois era um código descartável.
jwenting

Respostas:

18

Não, não há convenções de nomenclatura amplamente usadas para isso. Os exemplos que vi são Main, Application, XLauncherou X, onde X é o nome do projecto / aplicação.

E sim, acho que é bom para essa classe conter apenas o código / lógica mínimo necessário para configurar o aplicativo e iniciá-lo. Mas tenho certeza de que existem muitos objetos de Deus e grandes bolas de lama por aí com um mainmétodo pregado em uma monstruosidade de várias mil linhas.

Michael Borgwardt
fonte
Eu sei que isso é alguns anos depois, mas sua última frase me fez cair da minha cadeira. Obrigado pelo riso.
user0000001
@ user0000001: de nada!
Michael Borgwardt
9

Eles são chamados de classe principal , independentemente de serem chamados de principal e de fazerem pouco ou muito.

Eles geralmente têm a lógica necessária para iniciar o programa.

Nos aplicativos CLI, eles geralmente validam parâmetros.

No aplicativo Desktop, eles abrem o menu principal como o seu ou a janela principal.

Se você ler os arquivos MANIFEST em um arquivo jar, descobrirá que eles são chamados assim.

Manifest-Version: 1.0
Created-By: xxx
Built-By: xxx
Build-Jdk: 1.6.0_04
Main-Class: myPackage.MenuLauncher
Tulains Córdova
fonte