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 point
e 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?
Main
e geralmente tem menos de 20 linhas (com uma exceção de captura e análise de parâmetros).
Program
.