¿Hay algún convenio de ordenamiento de métodos Java?

Tengo una clase grande (40 o más métodos) que es parte de un paquete que enviaré como trabajo de curso. Actualmente, los métodos están bastante desordenados en términos de utilidad pública / privada, etc. y quiero pedirlos de una manera sensata. ¿Hay una forma estándar de hacer esto? Por ejemplo, normalmente los campos se enumeran antes que los métodos, los constructores se enumeran antes que otros métodos y los getters / setters duran; ¿qué pasa con los métodos restantes?

Algunas convenciones enumeran primero todos los métodos públicos y luego todos los privados, lo que significa que es fácil separar la API de la implementación, incluso cuando no haya interfaz involucrada, si entiendes lo que quiero decir.

Otra idea es agrupar los métodos relacionados, esto hace que sea más fácil detectar las costuras donde podría dividir su clase grande existente en varias más pequeñas y más específicas.

  1. Variables de clase (estáticas): Primero las variables de clase pública, luego las protegidas, y luego las privadas.

  2. Variables de instancia: primero públicas, luego protegidas y luego privadas.

  3. Constructores

  4. Métodos: estos métodos se deben agrupar por funcionalidad más que por scope o accesibilidad. Por ejemplo, un método de clase privado puede estar entre dos métodos de instancias públicas. El objective es facilitar la lectura y la comprensión del código.

Fuente: http://www.oracle.com/technetwork/java/codeconventions-141855.html

El enlace más preciso a «Convenciones de código»: «Declaraciones de clase y de interfaz»

No estoy seguro si hay un estándar universalmente aceptado, pero mis preferencias son;

  • constructores primero
  • métodos estáticos a continuación, si hay un método principal, siempre antes de otros métodos estáticos
  • métodos no estáticos a continuación, generalmente en orden de la importancia del método seguido por cualquier método que llame. Esto significa que los métodos públicos que llaman a otros métodos de clase aparecen hacia la parte superior y los métodos privados que no requieren otros métodos generalmente terminan hacia la parte inferior.
  • métodos estándar como toString , equals y hashcode next
  • getters y setters tienen un lugar especial reservado en la parte inferior de la clase

Mi “convención”: static before instance, public before private, constructor before methods, pero main method en la parte inferior (si está presente).

40 métodos en una sola clase es un poco demasiado.

¿Tendría sentido trasladar parte de la funcionalidad a otras clases, adecuadamente nombradas? Entonces es mucho más fácil darle sentido.

Cuando tiene menos, es mucho más fácil enumerarlos en un orden natural de lectura. Un paradigma frecuente es enumerar las cosas antes o después de que las necesite, en el orden en que las necesite.

Esto generalmente significa que main() va arriba o abajo.

Además, eclipse ofrece la posibilidad de clasificar los miembros de la clase por usted, si por alguna razón los confundió:

Abra su archivo de clase, vaya a “Fuente” en el menú principal y seleccione “Ordenar miembros”.

tomado de aquí: métodos de clasificación en Eclipse

¿Estás usando Eclipse? De ser así, me quedaría con el orden de clasificación de miembro predeterminado, porque es probable que sea más familiar para quien lee tu código (aunque no es mi orden de clasificación favorito).

Intereting Posts