La abstracción forma parte de los elementos fundamentales en el modelo de objetos. Es por eso que en este artículo, empezaremos conociendo a qué le llamamos abstracción dentro de la Programación orientada a objetos.
¿Qué es la abstracción?
Una abstracción se enfoca en la visión externa de un objeto, separa el comportamiento específico de un objeto, a esta división que realiza se le conoce como la barrera de abstracción, la cual se consigue aplicando el principio de mínimo compromiso.
“Las características específicas de un objeto, aquellas que lo distinguen de los demás tipos de objetos y que logran definir límites conceptuales respecto a quién está haciendo dicha abstracción del objeto”.
¿Cuál es el principio de mínimo compromiso?
Se refiere al proceso por el cual la interfaz de un objeto muestra su comportamiento específico y nada más, absolutamente nada más.
¿Qué es una interfaz?
Una interfaz de objeto permite crear código con el cual se especifica qué métodos serán implementados por una clase sin necesidad de definir qué harán estos métodos, dichos métodos deben ser públicos.
Pero… Existe también el principio de mínima sorpresa, en el cual una abstracción obtiene el comportamiento completo de algún objeto y por ende no ofrece sorpresas o efectos laterales que lleguen más allá del ámbito de la abstracción.
Hay una alta gama de abstracciones que existen desde los objetos que modelan muy cerca de entidades, a objetos que no tienen razón para existir, vamos a hacer una rápida mención de ello.
Gama de abstracciones
Abstracción de Entidades: Es un objeto que representa un modelo útil de una entidad que se desea.
Abstracción de Acciones: Un objeto que representa un conjunto de operaciones y todas ellas desempeñan funciones del mismo tipo.
Abstracción de Máquinas virtuales: Un objeto que agrupa operaciones, todas ellas virtuales, utilizadas por algún nivel superior de control u operaciones (entre ellos podríamos hablar de un circuito).
Abstracción de coincidencia: Un objeto que almacena un conjunto de operaciones que no tienen relación entre sí.
Modelo contractual de programación
En dicho modelo podemos mencionar que la vista exterior de cada objeto define una interfaz del que puedan depender otros objetos, esta interfaz como bien lo habíamos mencionado, establece todas las suposiciones que pueda hacer un objeto cliente acerca del comportamiento de un objeto servidor, es decir la interfaz abarca las responsabilidades de un objeto, dicho en otras palabras, abarca el comportamiento del que se le considera responsable.
Un objeto puede actuar y reaccionar de diferentes formas, un conjunto de operaciones que puede realizar un cliente sobre un objeto se le denomina protocolo. No está demás mencionar que toda abstracción tiene propiedades estáticas y dinámicas.
Sobre propiedades estáticas, podemos mencionar, el nombre, el tamaño, en algunas ocasiones su contenido.
De propiedades dinámicas podemos mencionar peso, tamaño, contenido.
Dependiendo del contexto que se está analizando el contenido u otras propiedades pueden ser dinámicas como estáticas.
Ejemplo de una abstracción sobre un vehículo.
Supongamos que en este ejemplo nos están solicitando la abstracción de un vehículo en cuanto a su comportamiento.
La pregunta que hago es ¿Cuáles son los comportamientos que tienen todos los vehículos? Con base a esta pregunta, automáticamente fluye nuestra abstracción del comportamiento de un vehículo.
- Encender Vehículo
- Apagar Vehículo
- Acelerar Vehículo
- Frenar Vehículo
- Retroceder Vehículo
- Parabrisas Vehículo
Así se podría listar el comportamiento del vehículo, ahora para que puedan ejercitar lo aprendido, puedes realizar abstracciones de objetos, incluyendo sus características y el comportamiento. En caso de tener dudas, o saber más sobre este o más mandamientos de la POO, sigue al tanto de nuestro contenido. Además el equipo de especialistas de ROOTHEIM, cuentan con asesorías y cursos sobre este y más temas.
Si estás interesado, ¡haz clic en los siguientes iconos!
Referencia: https://styde.net/abstraccion-programacion-orientada-a-objetos/
Copiar URL