Вы находитесь на странице: 1из 25

Encapsulacin y Ocultacin de

Informacin

Muchos diseadores y desarrolladores de software confunden la


Encapsulacin con la Ocultacin de Informacin.

Ambos son principios generales que provienen de la Programacin Orientada


a Objetos. Por lo tanto, cualquier definicin de ellos en trminos de objetos,
es inadecuada. La encapsulacin es el proceso de dibujar una frontera
alrededor de algo. Los lenguajes de programacin proveen lo necesario para
implementarla.

La Ocultacin de Informacin es la idea de que algo debe estar invisible al


resto del sistema, para prevenir un acceso no deseado a los datos.

La Encapsulacin es una caracterstica de los lenguajes de


programacin.

La Ocultacin de Informacin es un principio de Diseo


Orientado a Objetos.

Algunas fuentes indican, errneamente, que ambos conceptos


significan lo mismo, o que son sinnimos.

La Encapsulacin necesita cierto grado de Ocultacin de


Informacin, pero no depende de ella. Un objeto puede estar
fuerte o dbilmente encapsulado, dependiendo de cunta
implementacin
tenga
oculta.

La encapsulacin nos permite verificar el acceso a nuestra


informacin interna y provee mtodos especficos para
completar dicho acceso.

Debemos diferenciar los principios de diseo y modelado de


software de los mecanismos de los lenguajes Orientados a
Objetos.

Principios de diseo y modelado de software: Son un conjunto de


tcnicas que sirven para definir, grficamente, la estructura de un
sistema.

Mecanismos de los lenguajes Orientados a Objetos: Son una serie


de mandatos existentes en los lenguajes de programacin de alto
nivel (en ste caso nos referimos a los que son OO), que permiten
manipular la informacin y los objetos del sistema, de formas
especficas.

Muchos conceptos de diseo se aplican directamente en la


programacin; otros, no se aplican o necesitan auxiliarse de
algn mecanismo para poder tener parte en la programacin.
Tal es el caso de la ocultacin de informacin.

Ejemplo
Supongamos que tenemos un gavetero en nuestra habitacin. En l hay
una serie de gavetas, que nos permiten guardar diferentes cosas. Al
poner cualquier objeto dentro de una gaveta, lo estoy resguardando;
pero, cualquier persona que tenga acceso a mi habitacin, podra abrir
la gaveta y ver mi objeto, a menos que la gaveta est cerrada con llave.
De sta forma, slo yo accedera al objeto guardado en la gaveta. Si
hago esto, mi objeto estara bien resguardado; si no lo hago, mi objeto
sigue estando protegido, pero no estara 100% seguro.

Una relacin muy similar es la que hay entre encapsulacin y


ocultacin de informacin. Con la encapsulacin, ponemos nuestros
elementos (atributos o mtodos) dentro de un contenedor (que
puede ser una clase o un mtodo), pero, encapsular mis datos no los
hace tan seguros.

Al restringir el acceso a los elementos de mi cpsula, estoy haciendo


que estos estn ms seguros, ya que los detalles de la
implementacin estarn ocultos al resto del programa. As, estoy
usando la encapsulacin combinada con la ocultacin de
informacin.

Volviendo al ejemplo, yo bien podra tener guardadas mis


cosas en cualquiera de las gavetas de mi gavetero, sin tener
que asegurarlas con llave; pero, al hacerlo, evito las
posibilidades de cambios indeseados en mis cosas. La gaveta
es la cpsula, el llavn es el mecanismo que usara para ocultar
la
informacin
del
contenido
de
mi
gaveta.

En otras palabras, podemos implementar la encapsulacin sin tener


que ocultar la informacin, pero al hacerlo protegemos de una
mejor manera nuestros datos.

La ocultacin de informacin es un concepto de diseo orientado a


objetos. No es un mecanismo que existe en los lenguajes de
programacin orientados a objetos. Es un mtodo conceptual que se
usa para mejorar la eficiencia de la encapsulacin.

En el diseo, buscamos maneras de controlar la complejidad y


el impacto del cambio.

Para controlar la complejidad, debemos compartimentalizar el


sistema, agrupando los elementos similares (en
paquetes/namespaces) y reduciendo el nmero de posibles
conexiones entre estos grupos, proveyndole a cada uno una
interfaz que slo permita ciertos tipos de conexiones. Estos
son
dos
aspectos
de
la
encapsulacin.

Interfaz: Es el comportamiento externo de la clase (el qu).


Implementacin: Comprende los mecanismos que conducen al
comportamiento deseado (el cmo).

Para controlar el impacto del cambio, debemos analizar el


sistema en busca de decisiones embebidas que lo afectaran,
en un alto grado. Entonces, procuramos proteger las otras
partes del sistema de los cambios en tales decisiones,
haciendo que las otras partes del sistema no se enteren de la
decisin. Estos son aspectos de la Ocultacin de Informacin.

Si tengo cierta cantidad de elementos en una de mis gavetas, y


los modifico, las dems gavetas no sern afectadas por
cualquier
cambio
que
haga
en
sta
gaveta.

Usados de sta forma, en combinacin, la encapsulacin y la


ocultacin de informacin, son dos herramientas muy tiles
en el desarrollo de software, para poder compartimentalizar
apropiadamente la informacin e implementar de forma ms
efectiva la modularidad.

Вам также может понравиться