# data[].attributes.body
Farley, D. (2021). Information Hiding and Abstraction. Modern Software Engineering. Doing What Works to Build Better Software Faster. (pp. 151 - 170). Addison-Wesley.

KODOTI. (16 de agosto de 2020). 05. POO+SOLID -¿Qué es la abstracción? [Archivo de video]. Youtube. https://www.youtube.com/watch?v=2GaLSrW41pg

Frias,W. (2019). Diferencia entre abstracción y ocultación de datos. Quora. es.quora.com/Cuál-es-la-principal-diferencia-entre-la-abstracción-y-la-ocultación-de-datos-o-son-lo-mismo#:~:text=Abstraer%20un%20dato%20es%20darle,en%20una%20base%20de%20datos.&text=Ocultarlo%20es%20encriptarlo%20o%20codificarlo%20para%20que%20nadie%20pueda%20verlo%20directamente

Giménez, A. (20 de septiembre de 2023. ¿Qué es la abstracción en programación? El Universal DF. www.eluniversaldf.mx/que-es-la-abstraccion-en-programacion/

Mdn Web Docs. (2023). Abstraccion. developer.mozilla.org/es/docs/Glossary/Abstraction

Garrido, A. (s.f.). Abstracción en programación. Departamento de Ciencias de la Computación. [PDF].

Atlantic International University. (s.f.). Programación orientada a objetos. [PDF].

# data[].attributes.body
“El proceso de eliminar detalles o atributos físicos, espaciales o temporales en el estudio de objetos o sistemas para centrar la atención en detalles de mayor importancia.” (Farley, 2021).

# data[].attributes.body
Abstracción

Se da la posibilidad al usuario de acceder a funciones propias del juego, así como mostrar en pantalla lo que surge de estas.

Ocultamiento

"¿Cómo es que corre el videojuego?"

# data[].attributes.body
El concepto de ocultación de información es muy anterior a los lenguajes orientados a objetos. De hecho, fue mencionado por primera vez por David Parnas (1972).

Según Parnas:

"Cada elemento (módulo o subsistema) del sistema contiene una cierta información que "oculta" al resto de los módulos y les presenta una visión simplificada."

# data[].attributes.body
Como programadores, necesitamos un lenguaje de programación que permita escribir programas en términos de más alto nivel de abstracción de lo que la máquina puede ejecutar por sí misma.

Una opción son los de:

POO (Programación orientada a objetos).

# data[].attributes.body
"Nuestro código, cualquiera que sea su naturaleza, es mejor cuando lo construimos con costuras que ocultan información". (Frias, 2019).

# data[].attributes.body
Gracias al ocultamiento de información y abstracción , podemos simplificar la descripción de los objetos agrupándolos en clases y centrándonos solo en aquellas responsabilidades que sean relevantes para nuestro caso.

# data[].attributes.body
Es importante para lograr separar la interfaz de un objeto de su implementación y poder ofrecer al resto de los objetos del sistema una versión todavía más simplificada de este.

# data[].attributes.body
Abstracción

Presentar toda aquella información y funciones esenciales para el usuario.

Ocultamiento

Evita mostrar los procesos que el usuario produjo al requerir una acción.

# data[].attributes.body
POO y abstraccion

# data[].attributes.attachment_link.title
05. POO + SOLID - ¿Qué es la abstracción?

# data[].attributes.body
"Ayuda a aumentar la seguridad de la aplicación o programa ya que solo los detalles importantes son proporcionados al usuario." (MDN Web Docs, 2023).

# data[].attributes.body
Ayuda al usuario a evitar escribir código de bajo nivel.

# data[].attributes.body
Se puede cambiar la implementación interna de la clase de forma independiente sin afectar al usuario.

# data[].attributes.body
Evita duplicar código y aumenta la reusabilidad.

# data[].attributes.body
Para lograr el ocultamiento de información a partir de módulos se requiere:

# data[].attributes.body
1. Utilizar mínimo de características, ocultando las irrelevantes.

# data[].attributes.body
Separar el propósito de una función de su implementación.

# data[].attributes.body
Los algoritmos complejos usan operaciones englobadas en una sola función.

# data[].attributes.body
"Cada objeto está aislado del exterior, donde es un módulo natural y cada tipo de objeto expone una interfaz a otros objetos que especifican cómo interactuar con los objetos de la clase" (Atlantic International University, s.f.).

# data[].attributes.body
Métodos y atributos dentro de un objeto, mediante una interfaz.