Pages - Menu

martes, 25 de junio de 2013

Curso de Programación Orientada a Objetos 5/6: Encapsulación

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.

Curso de Programación Orientada a Objetos 5/6: 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.

¿Qué otras utilidades le ves a la encapsulación?