Interfaces


A menudo me centro en las cosas complejas y, cuando vuelvo a los orígenes, me encuentro con que cosas triviales no lo son tanto. Simplemente me he acostumbrado.

Tal es el caso de las interfaces. Las uso cuando las necesito, sin pensar. Sin embargo, en una conversación no hace mucho descubrí que no son tan simples como parecen.

Trataré de explicar aquí cómo usarlas, cuándo usarlas y, en general, sus beneficios.

Una fachada

Todo el mundo ha visto una consola. Da igual cual, ya que todas ofrecen un mecanismo similar: se inserta el juego, se pulsa un botón para arrancar y se usa un mando que suele constar de un pad y algunos botones. El número puede variar, pero la esencia es la misma.

Alguien que compra una consola espera encontrar esa interfaz. Pueden existir alternativas, pero siempre recurrimos

Con las interfaces sucede algo similar: nos presentan una fachada a otra cosa, ocultándonos lo que hay en su interior. Una fachada bonita puede ocultar una librería bien o mal hecha, pero probablemente sólo seamos capaces de reconocer la interfaz.

¿Qué es más importante?

Alguien puede pensar que lo más importante es el interior, ya que si está mal hecha o no funciona, nadie la usará.

Sin embargo, si una librería tiene una buena interfaz, su interior se puede cambiar por completo y hacer que los programas comiencen a funcionar. Si se cambia la interfaz, los programas dejarán de poder ejecutarse.

Ojo: ambos son importantes, pero es importante comprender que una modificación en el código no tiene mayores implicaciones, pero un cambio mínimo en una interfaz puede tener significados catastróficos.

Implementación

En los lenguajes de programación, una interfaz suelen ser un conjunto de clases sin implementación que


Comentarios

Comments powered by Disqus