martes, 2 de septiembre de 2008

Referencias:
Departamento de informática de la Universidad de san Luis de Argentina
Ciberaula java
MSDN de Microsoft
Blog de javaprogramacion

Abstracción y ocultamiento de información
Un lenguaje de programación provee una serie de abstracciones (sus características) y medios para que el programador defina las suyas:
Subprogramas
Definiciones de tipos, clases y paquetes
Ocultamiento de información: principio central en el diseño de abstracciones detenidas por el programador: "ocultar tanta información como sea posible, a los usuarios de una abstracción".
Ejemplo: la función raíz cuadrada es una operación abstracta útil (no necesito conocer la representación de los números ni el algoritmo para realizar el cálculo).
Un tipo de dato detenido por el programador es una abstracción útil si puede ser usada sin conocimiento de la representación de los objetos de este tipo, ni de los algoritmos usados por sus operaciones.
Encapsulamiento
A diferencia del ocultamiento de la información, en este caso, el usuario de la abstracción:
No necesita conocer la información oculta para poder usarla.
No puede manipular directamente la información oculta (aunque lo desee)
Principal ventaja del encapsulamiento: permite reducir el impacto de la modificación de los programas.

El encapsulamiento consiste en unir en la Clase las características y comportamientos, esto es, las variables y métodos. Es tener todo esto es una sola entidad. En los lenguajes estructurados esto era imposible. Es evidente que el encapsulamiento se logra gracias a la abstracción y el ocultamiento.
Sin encapsulamiento no puede haber Ocultamiento de Información. Debido al encapsulamiento, los datos y la implementación de las operaciones se ocultan al usuario. Teniendo los datos miembros y sus operaciones encapsuladas, el usuario sólo necesita saber cómo acceder a las operaciones. La implementación está contenida en la definición de la entidad Círculo y así está escondida.
El concepto de ocultamiento se fue mezclando con encapsulamiento y abstracción, tras algunos avatares de avance y retroceso. Los arquitectos más escrupulosos distinguen entre encapsulamiento y ocultamiento, considerando a aquél como una capacidad de los lenguajes de programación y a éste como un principio más general de diseño.

No hay comentarios: