Encapuslamiento

Publicado el 27 marzo 2014 por Alexander171294 @std_io
esto va septimo.
Buenas tardes, para continuar las publicaciones diarias que volvimos a realizar, hoy hablaremos sobre Encapsulamiento, uno de los temas que nos quedaron pendientes sobre el hilo del Arte de Programar.
En entradas anteriores vimos de todo un poco, incluyendo criterios de calidad, abstracción y otras teorías importantes que deben ser tenidas en cuenta.

Al igual que ocurre con la idea de abstracción y ocultamiento de información, la palabra encapsulación puede ser utilizada para describir diferentes cosas. A continuación se presentan algunas de las definiciones o ideas vinculadas al termino encapsulación en el contexto del desarrollo del software:
"El concepto de encapsulación, como es usado en este contexto no es diferente de la definición que podríamos encontrar en un diccionario, se refiere a construir una cápsula, esto es una barrera conceptual, alrededor de alguna colección de cosas..."
( Wirfs-Brock. 1990 )

"Es una simple aunque razonable herramienta para la construcción de sistemas, permite que los proveedores especifiquen una clara y definida interfaz a los servicios que ellos proveen.
Un consumidor tiene un conocimiento total de los servicios ofrecidos por una entidad pero desconoce totalmente como esta cumple con los mismos. Desde el punto de vista de un consumidor una entidad se asemeja a una cápsula que ofrece un número de servicios, sin ninguna visibilidad a cómo estos se implementan. El término técnico con que se designa a esto, es encapsulación..."
( Cox, 1986 )
"Encapsulación es un término genérico utilizado para nombrar la técnica mediante la cual se logra la abstracción de datos. Encapsulación así implica la provisión de mecanismos que soporten los conceptos de modularidad y ocultamiento de información..."
( Blair, 1991 )
"Encapsulación es la técnica que permite separar los aspectos externos de un objeto que son accesibles a otros, de los detalles internos de representación del mismo que son ocultos..."
( Rombaugh, 1991)
"La encapsulación evita que los clientes de un objeto se involucren con los detalles internos, donde se implementa el comportamiento de la abstracción..."
( Booch, 1991 )
"encerrar en o como si fuera una cápsula..."
( Mish, 1988 )
Al igual que con el término de abstracción, la palabra encapsulación es igualmente utilizada para denotar tanto un proceso, el acto de construir una cápsula, como una entidad la cápsula. Como proceso el término se refiere al acto de encerrar uno o más items dentro de un contenedor físico o lógico. La encapsulación como entidad se refiere al paquete, envoltorio o contenedor que mantiene uno o más items.
Es importante notar que nada se sugiere en relación a las paredes del envoltorio, específicamente estas pueden permitir ver dentro del mismo, no ver dentro del mismo o aún proveer una visibilidad limitada o controlada de los contenidos del mismo.
La encapsulación no es un concepto nuevo en el desarrollo de software. Los subprogramas, los arreglos y las estructuras de registro son algunos de los mecanismo que los lenguajes de programación utilizan para soportar el concepto de encapsulación.
De las definiciones anteriores surge cierta confusión entre los conceptos de encapsulación y ocultamiento de información. Si la encapsulación fuese lo mismo que el ocultamiento de información podría pensarse con cierta lógica que cada cosa encapsulada debería también ser oculta, y esto obviamente no es cierto. Si bien  es cierto que algunos de los constructores lingüisticos provistos para la encapsulación por algunos lenguajes de programación hacen posible que alguna información sea ocultada, no menos cierto es que estos mismos mecanismos permiten diferentes grados de visibilidad.
Aún argumentando que la encapsulación es necesaria para cumplir con el precepto de ocultamiento de información, la relación entre ambos conceptos no es ciertamente una relación de equivalencia.
Bueno lectores, eso es todo hasta el momento, mañana los espero para la entrada importante que les aclarará unas cuantas cosas.
Saludos!

También podría interesarte :

Quizás te interesen los siguientes artículos :