Proporcionar métodos getter y setter para acceder a cualquier campo de clase en Java puede parecer a primera vista inútil y sin sentido, simplemente porque puede hacer que el campo sea público y está disponible en programas Java desde cualquier lugar. En realidad, muchos programadores hacen esto en los primeros días, pero una vez que comienza a pensar en términos de aplicación empresarial o código de producción, puede comenzar a ver cuántos problemas de mantenimiento puede generar.
Dado que el software dedica más tiempo al mantenimiento que al desarrollo según el proceso SDLC, vale la pena tener la facilidad del mantenimiento como uno de los objetivos de desarrollo. Una de las mejores prácticas de codificación de Java consiste simplemente en usar los enfoques getter y setter en Java.
A continuación, se muestran algunas ventajas de getter y setter sobre los campos públicos.
1. El método getter and setter le brinda un control centralizado de cómo se inicializa y proporciona al cliente un determinado campo, lo que hace que sea mucho más fácil de verificar y depurar. Para ver qué subproceso está accediendo y qué valores están saliendo, puede colocar fácilmente puntos de interrupción o una declaración de impresión.
2. Hace que la clase sea accesible con muchas bibliotecas y módulos de código abierto, como etiquetas de visualización, haciendo que los campos sean privados al incluir getter y setter y siguiendo la convención de nomenclatura de java bean. Utiliza una combinación de reflexión y la convención de nomenclatura de beans Java para cargar y acceder a los campos dinámicamente.
3. Le da a Subclass la oportunidad de anular este método con getter y setter y devolver lo que tiene más sentido en el contexto de la subclase.
4. Ocultar la representación interna de la propiedad mediante el uso de una representación alternativa para exponer una propiedad.
5. Permitir que los herederos cambien la semántica de cómo se comporta y se expone la propiedad anulando los métodos getter/setter.
Java
class Person { // private = restricted access private String name; // Getter public String getName() { return name; } // Setter public void setName(String newName) { this.name = newName; } } class Main { public static void main(String[] args) { Person person = new Person(); // Set the value of the name variable to "kapil" person.setName("kapil"); System.out.println(person.getName()); } }
kapil
Publicación traducida automáticamente
Artículo escrito por manikumarsingh789 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA