Tengo una clase de gran tamaño (más o menos 40 métodos) que forma parte de un paquete que presentaré como trabajo del curso. Actualmente, los métodos están bastante mezclados en términos de utilidad pública / privada, etc. y quiero ordenarlos de 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 captadores / establecedores duran; ¿Qué pasa con los métodos restantes?
java
methods
conventions
Fredley
fuente
fuente
Respuestas:
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 hay una 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 costuras donde podría dividir su clase grande existente en varias más pequeñas y más específicas.
fuente
Variables de clase (estáticas): Primero las variables de clase públicas, luego las protegidas y luego las privadas.
Variables de instancia: primero públicas, luego protegidas y luego privadas.
Constructores
Métodos: estos métodos deben agruparse por funcionalidad en lugar de por alcance o accesibilidad. Por ejemplo, un método de clase privada puede estar entre dos métodos de instancia pública. El objetivo es facilitar la lectura y comprensión del código.
Fuente: http://www.oracle.com/technetwork/java/codeconventions-141855.html
fuente
El enlace más preciso a «Convenciones de código»: «Declaraciones de clase e interfaz»
fuente
No estoy seguro de si existe un estándar universalmente aceptado, pero mis propias preferencias lo son;
toString
,equals
yhashcode
próximofuente
new Thing()
solo debería dar como resultado una nueva Cosa instanciada. No debería resultar en conexiones de base de datos abiertas, archivos escritos, etc. etc.40 métodos en una sola clase es un poco demasiado.
¿Tendría sentido mover parte de la funcionalidad a otras clases adecuadamente nombradas? Entonces es mucho más fácil entenderlo.
Cuando tiene menos, es mucho más fácil enumerarlos en un orden de lectura natural. Un paradigma frecuente es enumerar cosas antes o después que las necesite, en el orden en que las necesita.
Esto generalmente significa que
main()
va arriba o abajo.fuente
onPause()
,onResume()
etc., así como todos misOnClickListener
campos, que, aunque son campos, no se ven ni se comportan como ellos, por lo que es razonable enumerarlos por separado.Mi "convención": estática antes de la instancia, pública antes que privada, constructor antes de los métodos, pero método principal en la parte inferior (si está presente).
fuente
Además, eclipse ofrece la posibilidad de ordenar 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
fuente
¿Estás usando Eclipse? Si es así, me quedaría con el orden de clasificación de miembros predeterminado, porque es probable que sea más familiar para quien lea su código (aunque no es mi orden de clasificación favorito).
fuente