Estos son sólo mis pensamientos:
main() es un método estático no relacionado con instancias de objetos. Sabemos que existe como un punto de entrada, que hace que nuestro programa/clase sea ejecutable.
El problema es que en Java, todo (pero primitivos) es un objeto, por lo que main() debe declararse en alguna clase en alguna parte. El código que un método estático puede ejecutar está más relacionado con la configuración del programa para su ejecución y la delegación de nuestra lógica comercial (objetos que realmente hacen algo) para ejecutar la aplicación. Como tal, su preocupación es distinta del resto de nuestra clase (que define algunos datos y comportamientos que estamos tratando de encapsular).
main() realmente no pertenece a los datos y el comportamiento de nuestras clases diarias, ya que dudo que cada clase necesite ser ejecutable por sí misma. La preocupación de main() es ejecutar nuestro programa. Como tal, debe declararse fuera de nuestros objetos comerciales, en un módulo del proyecto relacionado con el lanzamiento/ejecución de la aplicación. Entonces, como podría estar adivinando, le propongo exactamente lo que ha dicho que no sugiera: manténgase separado de sus clases y su lógica tanto como sea posible, y solo defínelo en el contexto de un punto de entrada a su aplicación.
En cuanto a la ubicación dentro de un archivo en sí, realmente no creo que importe, siempre y cuando sea obvio que el código en ese archivo se refiere a la configuración y ejecución del programa.
¿Por qué * no * mantener el main() en su propio archivo? Si no quiere usar OOP, entonces no use Java ... – bdares
Este es un estilo amable para evitar la mezcla de análisis de argumentos y cualquier tipo de preparación antes de la llamada como "job.doAll()". –
gracias a todos por sus opiniones. Nuestro equipo decidió colocar al principal en la parte superior de la clase, ya que es el punto de entrada a la funcionalidad de la clase. –