Penúltimo capítulo del curso de ProgramaciónOrientada a Objetos, tras ver los conceptos de clase, objeto y las
posibilidades de la herencia como práctica para crear un desarrollo rápido y
limpio ahora vamos a entrar en otro concepto muy interesante. La encapsulación.
Foto tomada de freedigitalphotos.net |
¿Qué es la encapsulación?
Se conoce como encapsulación a la práctica
de ocultar los atributos de un objeto, siendo imposible modificar estos si no
es mediante procedimientos y funciones definidos para tal objetivo.
Ejemplo.
Imaginemos que tenemos un objeto Perro,
instanciado a partir de la clase Cánido. Dicho objeto tiene los atributos
Color, Altura y Raza. Según la teoría de la encapsulación no es posible poder
modificar desde el programa estos atributos directamente. La clase Cánido debe
contener unos procedimientos y funciones especificas para tal fin.
Ahora imaginemos que la clase Cánido tiene
un procedimiento llamado CambiarRaza, al cual le pasamos como parámetro el
nombre de la raza que tendrá el objeto Perro. Ésta sería la única forma de
poder modificar éste atributo.
Ventajas.
Las ventajas de usar la encapsulación son
varias. Por un lado tenemos la seguridad de que en ningún punto del programa se
va a modificar los atributos de un objeto, al contrario que en la programación
estructurada, donde podíamos modificar los valores de una estructura en
cualquier momento. Esto evita errores.
Por otro lado está la rapidez para detectar
un error, si ha ocurrido un error debido a que los atributos de un objeto no
son correctos o se han modificado a tipos de datos incompatibles, sabemos
perfectamente donde buscar el error, es decir, dentro de la clase. Proporciona
rapidez para detectar fallos.
Otra de las ventajas es que gracias a que
toda modificación de atributo es a través de procedimientos y funciones podemos
implementar dentro de éstas comprobaciones y validaciones, de esta forma nos
aseguramos que el objeto tenga los datos completamente correctos, y de nuevo si
ocurre un error es seguro de que sólo estará localizado en ese procedimiento o
función. Nos da la posibilidad de aplicar validaciones.
Además aparte de poder aplicar validaciones
también podemos introducir cálculos internos y modificar atributos que de otra forma no podrían modificarse directamente, como
precios, stock, etc.
Conclusión.
El concepto de encapsulación, como se ha
podido ver, es un concepto muy simple pero que dota de una potencia enorme a
nuestras aplicaciones. Al final, como se puede comprobar, todo va encaminado a
hacer desarrollos fáciles, rápidos y estables, donde el mantenimiento sea sencillo
y la implementación también.
Con esto terminamos el quinto capítulo del
curso de Programación Orientada a Objetos, en el siguiente y último capítulo
veremos otro de los grandes conceptos que definen este potente paradigma: El
polimorfismo.