A menudo veo proyectos (en proyectos y equipos de Java que usan Eclipse) con los parámetros de función prefijo p
.
Por ejemplo
public void filter (Result pResult) ...
Personalmente, no veo ningún beneficio en esto, pero me gustaría saber cuál es el razonamiento. La mejor explicación que he escuchado hasta ahora es que es para distinguir el nombre de campos con nombres idénticos. Tengo mis problemas con esa explicación pero puedo entender el punto.
fuente
struct
/union
con un elemento.Como sospecha, es para evitar colisiones de nombres entre el nombre del parámetro y los nombres de miembros o variables locales. Las variables miembro a veces reciben un prefijo por la misma razón (por ejemplo,
m_result
). Personalmente, prefiero usar elthis
prefijo para las variables miembro si hay una colisión de nombres. Está integrado en el idioma y todos ya saben lo que significa.fuente
Solo uso un prefijo de parámetro cuando el parámetro está destinado a ser asignado a una variable miembro, como un constructor o un setter.
Para mí, encuentro que usar un nombre de variable diferente es más obvio que usar el prefijo "this".
Para otras situaciones, evito usar un parámetro que pueda confundirse fácilmente con una variable miembro.
Si un método o clase es tan grande que es difícil saber qué significan las variables, la solución real es dividirlo en métodos / clases más pequeños. El uso de prefijos es una solución de curita que aborda el problema subyacente.
fuente
Paint (clr) { color = clr; }
). ... Por lo general, no hay mucha ambigüedad, aunquecolor -> clr
en particular puede ser una excepción.Si establece un estándar para usar 'p' como prefijo con el nombre de cada parámetro del método, puede reconocer fácilmente los parámetros del método en el resto del cuerpo del método.
Le ahorra tiempo encontrar los parámetros del método. Puede depurar su código fácilmente.
fuente
Corto: esta práctica hace que el código sea más difícil de leer.
Largo: argumentaré que es una mala práctica que solo se usa para apoyar otras malas prácticas. Examinemos un par de razones por las cuales usar tales prefijos podría considerarse útil:
Evitar colisiones en nombres de variables
public void setHeight(int newHeight) { this.height = newHeight; }
Los métodos toman muchos parámetros, declaran muchas variables y fácilmente podríamos olvidar cuál es un parámetro.
Excepto en algunos casos específicos, agregar prefijos de parámetros solo ayuda con los síntomas y no resuelve problemas reales.
fuente
Soy fanático de iParam para los parámetros de entrada y oParam para los parámetros de salida. Diría cParam para el cambio, pero eso no es aceptable
fuente