En las clases de Java, ¿se considera una buena o mala práctica acceder a los campos de miembros con sus getters y setters?¿Está en un anti-patrón usar siempre los métodos get y set para acceder a los campos de miembros de una clase?
por ejemplo, que es mejor:
public Order {
private Agreement agreement;
public Agreement getAgreement() {
return agreement;
}
public void process() {
//should I use:
getAgreement().doSomething();
//Or:
agreement.doSomething();
}
}
En general creo que el acceso al campo es directamente mejor debido al principio KISS y también alguien puede anular el método get más tarde con resultados impredecibles.
Sin embargo, mis colegas sostienen que es mejor mantener una capa de abstracción. ¿Hay algún consenso sobre esto?
Del mismo modo, alguien puede anular getAgreement() y acceder al campo directamente lo rompe. –
¿Por qué getAgreement() es público? Es difícil responder la pregunta sin saber eso. Si siempre defines getters públicos para todos los campos, entonces tendrás problemas mucho más grandes que decidir cómo escribir esa llamada a un método. – finnw
posible duplicado de [Usando getters dentro de los métodos de clase] (http://stackoverflow.com/questions/629029/using-getters-within-class-methods), http://stackoverflow.com/questions/586087/when-should -a-class-use-its-own-getters-setters-vs-accessing-the-members-directl – nawfal