2008-10-20 10 views
10

He visto a algunos desarrolladores poner declaraciones de variables de instancia al final de las clases, aunque en su mayoría las veo ubicadas en la parte superior. Las únicas razones que se me ocurren para hacer esto son las preferencias estilísticas o quizás de alguna manera las hace más fáciles de trabajar en un IDE. ¿Hay alguna razón más legítima para elegir este estilo?Colocación de declaraciones de variables de instancia

Respuesta

17

Debido a "Programa a una 'interfaz', no una 'implementación'." (Gang of Four 1995: 18) (http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1), algunas personas prefieren declarar variables de instancia en la parte inferior de la clase. la teoría es que el usuario de una clase está más interesado en lo que puede hacer con la clase (métodos) que en cómo se hace algo (variables). Colocar los métodos en la parte superior de la clase los expone primero al usuario cuando miran el código.

+0

Un usuario de una clase no debería tener que mirar dentro del código fuente en primer lugar (el uso debe documentarse y ser accesible sin mirar el código fuente). La única razón por la que alguien debería estar mirando el código fuente es comprender el funcionamiento interno, por lo que no aconsejaría colocar campos privados en la parte inferior. –

1

Es sobre todo (si no del todo) preferencia personal. Me gustan ellos en la parte superior, pero realmente no podría dar una mejor razón para eso, entonces es la forma en que estoy acostumbrado.

14

No hay una razón particularmente "buena" para hacerlo de una manera u otra. Lo único que realmente importa es que todos en el mismo proyecto lo hagan de la misma manera.

Sin embargo, colocarlos en la parte superior es mucho más común en mi experiencia, y es la práctica recomendada por el Java style guidelines, así que eso es lo que iría.

Puede aplicar su convención elegida con un formateador de código fuente automático como Jalopy, o el que viene con Eclipse.

1

La mayoría de las variables de instancia son private, por lo que tiendo a ponerlas en la parte inferior porque declaro los miembros para disminuir la visibilidad. Si los declaro en orden de incrementando la visibilidad de, estarían en la parte superior, lo cual también es razonable.

Lo que no me gusta es tener campos privados seguidos de campos públicos seguidos por métodos privados. Si estoy desarrollando una clase de cliente, quiero todas las partes públicas juntas (ya que eso es todo lo que me interesa)

1

Siempre he racionalizado que si tienes una variable de nivel de clase privada, entonces has codificado una configuración, o está rastreando el estado de una forma u otra. Si está rastreando el estado, entonces 1) debería hacerse obvio para todos los que van a escribir código en el archivo desde el momento en que abren el archivo, y 2) el seguimiento de muchos estados es un gran olor a código, y si mis desarrolladores están haciendo eso, entonces quiero que sea obvio. Así que ponerlo en la parte superior, imho, hace que el código incorrecto sea más obvio, y sirve como una advertencia para las personas futuras que editan la clase.

Definitivamente separa tus campos públicos/protegidos vs privados y miembros, porque las personas interesadas en una, probablemente no estén interesadas en la otra.

Cuestiones relacionadas