Encapsulación (programación)

En programación , la encapsulación se refiere a la agrupación de datos con un conjunto de rutinas que permiten su lectura y manipulación. Este principio suele ir acompañado del enmascaramiento de estos datos sin procesar para garantizar que el usuario no pase por alto la interfaz destinada a él. El conjunto se considera entonces como una caja negra con un comportamiento y propiedades especificados.

La encapsulación es un pilar de la programación orientada a objetos , donde cada clase define métodos o propiedades para interactuar con miembros de datos, pero este principio se puede encontrar en otros estilos de programación (por ejemplo, programación modular ).

Motivaciones

Implementación

Los principios de encapsulación se aplican de formas muy diferentes según el idioma. Pero aún podemos encontrar dos corrientes principales.

Primero, una aplicación relativamente estricta de los principios en lenguajes de objetos puros (en la medida en que ese término tenga algún significado) como en SmallTalk o Eiffel . En este contexto, los atributos a menudo solo están disponibles para leerlos en general en el programa y también para escribir desde dentro de la clase de objeto. Luego encontramos varios medios para adaptar este marco a clases amigables o categorías y jerarquías de objetos.

En segundo lugar, lenguajes como C ++ , Java o Ruby y, en general, todos los lenguajes influenciados por la sintaxis de C ++ que ofrecían tres niveles de visibilidad:

Este tipo de encapsulación en realidad proporciona otro enfoque de encapsulación que no distingue entre leer y escribir un atributo. En este contexto, también se pueden utilizar métodos de acceso y modificación definidos en uno de estos niveles de visibilidad según el efecto que se desee obtener. A menudo, los métodos de ambos tipos se definen además del atributo que realmente contiene los datos. Finalmente, los medios permiten que otras clases y funciones libres accedan libremente a todos los atributos de una clase, como es el caso de las clases y funciones amigables en C ++.

Notas y referencias

  1. (en) Wm. Paul Rogers , "La  encapsulación no oculta información  " , JavaWorld ,18 de mayo de 2001( leer en línea , consultado el 9 de diciembre de 2016 )

Ver también