Si está utilizando getters y setters, ¿cómo debe nombrar las variables miembro privadas?

StackOverflow https://stackoverflow.com/questions/169216

  •  05-07-2019
  •  | 
  •  

Pregunta

Como una especie de seguimiento a esta pregunta sobre los prefijos , estoy de acuerdo con la mayoría de las personas en el tema de que los prefijos son malos. Pero ¿qué pasa si estás utilizando getters y setters? Luego, debe diferenciar el nombre del receptor accesible públicamente de la variable almacenada de forma privada. Normalmente solo uso un guión bajo, pero ¿hay una mejor manera?

¿Fue útil?

Solución

Esta es una pregunta completamente subjetiva. No hay "mejor" manera.

Una forma es:

private int _x;
public get x():int { return _x; }
public set x(int val):void { _x = val; }

Otro es:

private int x;
public get X():int { return x; }
public set X(int val):void { x = val; }

Tampoco es la respuesta correcta. Cada uno tiene ventajas y desventajas de estilo. Elija el que más le guste y aplíquelo constantemente.

Otros consejos

Me gusta prefijar los campos con un guión bajo, como otros han mencionado.

private int _x;

Creo que esto va más allá de la preferencia personal directa (como dijo David Arno en este hilo). Creo que hay algunas razones objetivas reales para hacer esto:

  1. Significa que evitas tener que escribir " this.x = x " para tareas (especialmente en setters y constructores).
  2. Distingue sus campos de sus variables / argumentos locales. Es importante hacer esto: los campos son más difíciles de manejar que los locales, ya que su alcance es más amplio / la vida útil es más larga. Agregar el carácter adicional es una señal de advertencia mental para los codificadores.
  3. En algunos IDE, el subrayado hará que el autocompletar ordene los campos al principio de la lista de sugerencias. Esto hace que sea más fácil ver todos los campos de la clase en un bloque. Esto a su vez puede ser útil; en clases grandes, es posible que no pueda ver los campos (generalmente definidos en la parte superior de la clase) en la misma pantalla que el código en el que está trabajando. Clasificarlos en la parte superior es una referencia útil.

(Estas convenciones son para Java, pero existen otras similares para otros idiomas)

Estas cosas parecen pequeñas, pero su prevalencia definitivamente me hace la vida más fácil cuando estoy codificando.

En java existe this.foo en python hay self.foo y otros idiomas tienen cosas similares, por lo que no veo la necesidad de nombrar algo de una manera especial, cuando ya puedo usar una construcción de lenguaje. En el mismo contexto, los IDE y los editores correctos comprenden las variables de los miembros y les dan un toque especial, por lo que realmente puede verlo sin usar nombres especiales.

En un lenguaje sensible a mayúsculas y minúsculas solo uso:

private int myValue;

public int MyValue
{
    get { return myValue; }
}

De lo contrario, usaría un guión bajo

Private _myValue As Integer

Public ReadOnly Property MyValue As Integer
    Get
        Return _myValue
    End Get
End Property

Hay casi tantas formas diferentes de hacerlo como programadores que lo hacen, pero algunas de las formas más populares incluyen (para una propiedad Foo ):

  • mFoo
  • m_foo
  • _foo
  • foo

Me me gusta escribiendo " this.x = x " ;. Es muy claro para mi. Además, cuando usa Eclipse, puede hacer que genere automáticamente sus captadores / configuradores de esta manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top