La abstracción en POO (Programación Orientada a Objetos)
En el post pasado ya habíamos dicho su definición, a que nos referimos con ello pero para entrar en contexto entonces… ¿que es la abstracción?
La abstracción es la propiedad que permite centrarse en los aspectos fundamentales de una clase es decir, es describir un objeto con propiedades y métodos principales sin pensar en detalle.
Por ejemplo cuando definimos una clase o una interfaz solo declaramos el método o acción, y nos enfocamos más en el “¿qué hace?” mas no en el “¿cómo lo hace?”, para dejarlo mas claro y sin tantas vueltas vamos con un ejemplo practico
Supongamos que crearemos una aplicación para el sector salud y se nos pide que recopilemos la información del paciente, y se nos llega a ocurrir un sin fin de información a obtener, por ejemplo:
- Nombre completo
- Dirección
- Número de contacto
- Curp
- Número de seguro social
- Tipo de sangre
- Comida favorita
- Música favorita
- Película favorita
Pero no toda la información que pensamos en obtener, es necesaria para nuestra aplicación enfocada para el sector salud.
Por lo tanto, debemos seleccionar solo la información útil y relevante que nos sirva para su historial clínico, como por ejemplo, datos como nombre completo, dirección, número de contacto, etc.
A este ejercicio que hemos realizado de obtener, eliminar y seleccionar la información del paciente de un grupo mayor, se denomina Abstracción.
Si ponemos mas atención podremos notar que la misma información extraída se puede reutilizar para otro tipo de aplicaciones o sectores por ejemplo, Linkedin, el sector bancario o para tramites gubernamentales como el tramite del INE(México), etc. con poca o ninguna modificación que hacer es por eso
que gracias a la abstracción, podemos crear una clase de este tipo y convertirla como una clase maestra.
La abstracción es el proceso de ocultar los detalles de la implementación y mostrar solo la funcionalidad al usuario, solo darle lo que pide sin que el se entere que es todo el proceso que se lleva acabo internamente para obtener la información o ejecutar la acción que solicito, el ejemplo mas claro es cuando se requiere reproducir una canción de Spotify, el usuario solo busca la canción, la elige para ser escuchada y disfruta la canción, sin que el usuario se entere de todo lo que tuvo que suceder para que pudiera escucharla, que protocolos, que servidores o que base de datos tuvieron que ser consultadas para poder reproducir su canción favorita.
En resumen
- La abstracción es el proceso de seleccionar los datos más importantes para un Objeto y omitir los insignificantes o con muy poco valor.
- Cuando se realiza la abstracción de forma correcta, se podría reutilizar el mismo conjunto de datos en diferentes aplicaciones o sectores.
- En java(Android), la abstracción se logra utilizando clases e interfaces abstractas