Encapsular Campo.
Tienes un campo público.
Haz que el campo sea privado y crea métodos de acceso para él.
##Example
class Person {
public String name;
}class Person {
private String name;
public String getName() {
return name;
}
public void setName(String arg) {
name = arg;
}
}##Why Refactor
Uno de los pilares de la programación orientada a objetos es la Encapsulación, la capacidad de ocultar los datos de un objeto. De lo contrario, todos los objetos serían públicos y otros objetos podrían obtener y modificar los datos de tu objeto sin ningún tipo de control. Los datos quedan separados de los comportamientos asociados a ellos, se compromete la modularidad de las secciones del programa y el mantenimiento se complica.
##Benefits
-
Si los datos y el comportamiento de un componente están estrechamente interrelacionados y se encuentran en el mismo lugar del código, te resultará mucho más fácil mantener y desarrollar ese componente.
-
También puedes realizar operaciones complejas relacionadas con el acceso a los campos del objeto.
##How to Refactor
-
Crea un getter y un setter para el campo.
-
Encuentra todas las invocaciones del campo. Sustituye la obtención del valor del campo por el getter, y sustituye la asignación de nuevos valores al campo por el setter.
-
Una vez que se hayan sustituido todas las invocaciones del campo, haz que el campo sea privado.
Siguientes pasos
Encapsular Campo es solo el primer paso para acercar los datos y los comportamientos que los involucran. Después de crear métodos sencillos para acceder a los campos, deberías revisar los lugares donde se llama a estos métodos. Es muy posible que el código de esas zonas quedaría más apropiado dentro de los métodos de acceso.