¿Por qué utilizar getters y setters / accessors?

¿Cuál es la ventaja de usar captadores y definidores, que solo obtienen y configuran, en lugar de simplemente usar campos públicos para esas variables?

Si los captadores y definidores alguna vez hacen algo más que el simple get / set, puedo resolver esto muy rápidamente, pero no tengo 100% claro cómo:

public String foo;

es peor que:

private String foo;
public void setFoo(String foo) { this.foo = foo; }
public String getFoo() { return foo; }

Mientras que el primero requiere mucho menos código repetitivo.

preguntado Oct 14 '09, 15:10

@ Dean J: Duplicar con muchas otras preguntas: stackoverflow.com/search?q=getters+setters -

Por supuesto, ambos son igualmente malos cuando el objeto no necesita que se cambie una propiedad. Prefiero hacer que todo sea privado y luego agregar captadores si es útil y configuradores si es necesario. -

Google "los accesores son malvados" -

"Los accesores son malvados" si está escribiendo código funcional u objetos inmutables. Si está escribiendo objetos mutables con estado, entonces son bastante esenciales. -

0 Respuestas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.