A menudo, me vienen a través de código en la que se utiliza repetidamente la método Getter/abusado de obtener algún valor o pasarlo como un parámetro de método, por ejemplo:Accessor Método de optimización de rendimiento y
public class Test {
public void someMethod() {
if(person.getName() != null && person.getName().equalsIgnoreCase("Einstein")) {
method1(person.getName());
}
method2(person.getName());
method3(person.getName());
method4(person.getName());
}
}
general I Código que, como a continuación:
public class Test {
public void someMethod() {
String name = person.getName();
if(name != null && name.equalsIgnoreCase("Einstein")) {
method1(name);
}
method2(name);
method3(name);
method4(name);
}
en mi opinión, hay una considerable ventaja de memoria/rendimiento en la asignación del captador a una variable y su uso, como captadores son los métodos de Java y marcos de uso de la pila. ¿Existe realmente una ventaja considerable en la codificación de esa manera? }
Por qué no probarlo y ver? La ventaja de rendimiento sería más fácil de medir, aunque todavía necesita atención para obtener resultados precisos ... – DNA
Depende de cuán computacionalmente costoso sea 'getName'. Si 'getName' es un método de miles de líneas lleno de bloqueos y sincronización, entonces sí, es posible que tenga algunos problemas. Por otra parte, puede que no. Además, si múltiples llamadas pueden devolver diferentes valores, ambos enfoques pueden ser semánticamente diferentes. –
No puede usar "getter" y "best practice" en el mismo lugar, a menos que el mensaje sea "el uso de métodos getter es lo contrario de las mejores prácticas". – DwB