2011-03-19 12 views
7

Duplicar posibles:
Java protected fields vs public gettersbuen diseño: ¿Cómo uso los campos de la superclase

Si tengo esa clase B se extiende A y en A i tener algunos campos que utilizo también en B , es mejor proteger estos campos y llamarlos desde la clase B o escribir métodos getter para estos campos y así usar este método de la clase B? (estos campos están configurados en el contexto de A)

+1

posible duplicar: http://stackoverflow.com/questions/2279662/java-protected-fields-vs-public-getters – smas

Respuesta

2

Si prefiere obtener datos de miembros públicos en su interfaz pública (como debería), utilice getters protegidos por la misma razón. Las subclases, al igual que los clientes públicos, son clases fuera de su control que no necesitan acceso sin restricciones a su funcionamiento interno.

1

En mi opinión, y sé que muchos estarían en desacuerdo, si todas las clases son implementadas por usted, es mejor usar objetos/variables protected, ya que le da más control sobre las partes internas de la clase que extiende la superclase. Y no me preocuparía demasiado sobre la encapsulación, porque controlas toda la fuente.

Si las clases van a ser ampliadas por otra persona que no tendrá la fuente de la clase, recomendaría usar getters si es necesario, e incluso evitar esto cuando sea posible.

1

Creo que el uso de métodos getter y setter es siempre la mejor opción, ¡incluso en la misma clase! La razón de esto es bastante simple. Imagine que desea cambiar cualquier cosa en la forma en que accede al campo.

Por ejemplo, accede a un int que contiene un valor. Ahora, por alguna razón, quiere multiplicar este valor siempre por 2 antes de acceder a ellos. Si utiliza métodos de acceso que el cambio sencillo de su método:

private int test = 5; 

public int getValue() { 
    return test; 
} 

a

public int getValue() { 
    return test * 2; 
} 

Si desea el mismo cuando se accede directamente a la prueba de campo, tiene grandes problemas cuando se quiere cambiar tales cosas.

Cuestiones relacionadas