Las interfaces de clase dentro de la programación orientada a objetos

Ahora que conocemos los conceptos de abstracción y encapsulación podemos hablar de las interfaces de clase dentro de la programación orientada a objetos.

La interfaz de una clase es un listado de métodos que, en el caso de tratarse de una interfaz pública, estos métodos son conocidos por los objetos alrededor de nuestra clase.

Las interfaces y la forma de modelar las clases y métodos abstractos en la mayoría de los lenguajes de programación se basan en conceptos de abstracción y encapsulación.

En los lenguajes modernos de programación orientada a objetos, el mecanismo de la interfaz (declarado normalmente con la palabra clave interface o protocol) permite definir contratos de interacción entre objetos. Esto recalca el interés de reflejar en las interfaces sólo los métodos y no los atributos por esta razón hay muchos lenguajes de programación orientada a objetos que no permiten la declaración de atributos en las interfaces de clase.

Una clase puede tener una interfaz pública, otra interfaz privada y otra interfaz protegida dependiendo de cómo se declaren los distintos métodos de la clase. De esta forma los métodos de la clase estarán disponibles a distintos niveles de complejidad.

La encapsulación dentro de la programación orientada a objetos

Para encender una televisión sólo tienes que pulsar el botón de encendido, los detalles de la alimentación eléctrica, el arranque del sistema software de la televisión, la decodificación de la señal de la televisión o la distribución de los cables y circuitos que componen el aparato de televisión permanecen ocultos para los usuarios bajo la carcasa de la televisión. El usuario sólo tiene que saber cuál es el botón de encendido, los botones para cambiar de canal y los botones para modificar el nivel de volumen brillo y otros detalles simples de configuración.

El hecho de ocultar el comportamiento y atributos internos de una clase con el objetivo de simplificar la interfaz ofrecida a otros objetos se denomina encapsulación ya que lo que estamos haciendo es ocultar en cápsulas elementos que resultan innecesarios a objetos de fuera de nuestra clase.

Este ejemplo ilustra cómo funciona una interfaz pública de una clase. A otros objetos se les ofrece un conjunto de métodos y atributos pero no se les deja ver cómo se trata esa información o si hay más métodos internos. A los objetos que trabajan con nuestra clase sólo les interesa los resultados que se pueden obtener de los atributos y métodos públicos.

La encapsulación es la capacidad de un objeto para ocultar partes de su estado y comportamiento de otros objetos, exponiendo únicamente una interfaz limitada al resto del programa.
Encapsular algo significa hacerlo privado y, por ello, disponible únicamente dentro de los métodos de su propia clase.

Existe el modelo protegido que resulta un poco menos restrictivo que el modelo de la encapsulación. En el modelo protegido los métodos de una clase están también disponibles para las clases hijas.

La abstracción dentro de la programación orientada a objetos

Dentro de la programación orientada a objetos, a  la hora de dar forma a los objetos de un programa se toma como base a los objetos del mundo real. Sin embargo estos objetos no representan a los objetos reales con demasiada exactitud. Más bien estos objetos del programa representan al objeto real mediante una serie de atributos y comportamientos específicos para el contexto que representará el programa que estamos realizando.

Por ejemplo una clase coche tendrá los atributos de nombre, modelo, color, velocidad máxima. Pero si la clase va a ser utilizada en una aplicación para la venta de vehículos además la clase contendrá información sobre el fabricante, precio, prestaciones y nivel de lujo. Por el contrario si la clase va a ser utilizada dentro de un videojuego de carreras de coches esta clase contendrá información sobre el combustible, peso, ángulo de giro en las curvas y atributos que permitan al videojuego simular el comportamiento del vehículo en un circuito de carreras.

Esto significa que el contexto de nuestro programa definirá el modelado de la clase.

La Abstracción es el modelo de un objeto o fenómeno del mundo real, limitado a un contexto específico, que representa todos los datos relevantes a este contexto con gran precisión, ignorando el resto de atributos no necesarios para el contexto.

Review de Letteronic accesible en el canal de AliBlueBox

El canal de Youtube de AliBlueBox ofrece información y reviews sobre aplicaciones, productos y servicios utilizados por personas con discapacidad visual.

De forma amena y concisa ofrecen información útil que permite identificar productos que pueden ser del interés de personas con y sin discapacidad.

 Recientemente han publicado un video con una review de nuestro juego Letteronic accesible en el que se habla de las distintas opciones de configuración de accesibilidad y una partida de ejemplo en la que Alicia consigue encontrar la palabra oculta.

Puedes ver el video con la review de Letteronic accesible en el canal de AliBlueBox en Youtube.

Ya disponible Letteronic accesible para iPhone e iPad

Hoy 29 de mayo de 2022 empieza a estar disponible la octava aplicación que he publicado de forma personal bajo mi sello de Tyflos Accessible Software.

Esta aplicación es un puzzle de letras e incorpora multitud de características de accesibilidad.

Portada de Letteronic accesible

Descripción del juego

El juego accesible de adivinar palabras que podrás jugar con todo el mundo.

Este juego incorpora opciones de accesibilidad para varios perfiles de discapacidad.
Este juego incorpora mejoras para personas con baja visión.
Este juego es compatible con teclados externos.
Este juego es compatible con VoiceOver.
Los usuarios de línea braille deben consultar las instrucciones para mejorar la experiencia de juego.
El feedback de vibración sólo está disponible en dispositivos iPhone.

Juega con palabras de 4, 5 y 6 letras.
Juega todas las veces que quieras con palabras en inglés y en español y aprende el significado de las palabras.

Conoce si las letras de las palabras son correctas utilizando colores, colores texturizados, sonidos, vibraciones, voz o braille.

Cada vez que descubras la palabra secreta ganarás puntos.
El objetivo del juego es descubrir el número máximo posible de palabras secretas para obtener la mejor puntuación.

Juega con las reglas oficiales o unas reglas más sencillas.

Cambia el nivel de dificultad para conseguir más puntos.
Puedes cambiar el nivel de dificultad en las opciones que encontrarás en el menú de ajustes del juego.

Comparte tus mejores puntuaciones y tus logros en GameCenter.

Planes de futuro

Aunque el juego por ahora está sólo disponible para iOS e iPadOS espero que en breve también esté disponible para las últimas versiones de MacOS y TvOS.

Descargar el juego

Podéis descargar Letteronic accesible desde la AppStore.