¿Qué es
Interfaz?
Como interfaz designamos, en informática, la
conexión física y funcional que se establece entre dos aparatos, dispositivos o
sistemas que funcionan independientemente uno del otro. En este sentido, la comunicación
entre un ser humano y una computadora se realiza por medio de una
interfaz.
La palabra interfaz,
como tal, proviene del inglés interface, que significa ‘superficie de
contacto’.
La interfaz es el mecanismo o herramienta que
posibilita esta comunicación mediante la representación de un conjunto de
objetos, iconos y elementos gráficos que vienen a funcionar como metáforas
o símbolos de las acciones o tareas que el usuario puede realizar en la
computadora. Por ejemplo, introducir datos en una hoja en blanco, enviar un
documento a la papelera, modificar un archivo, cerrar un programa.
En computación,
existen básicamente dos tipos de interfaces:
- La interfaz
física: constituida por objetos que nos permiten introducir datos y
manipular la computadora, como el ratón o el teclado, que vendrían a funcionar
como prótesis o extensiones de nuestro cuerpo.
- La interfaz
gráfica: también conocida como GUI (Graphic User Interface), que permite al
ser humano interactuar con el computador mediante una serie de elementos
gráficos (ventanas, iconos, entre otros).
Interfaz de
usuario
Como interfaz de usuario se designa el medio del
que se vale una persona para comunicarse con una máquina, dispositivo o
computadora. Suelen ser amigables e intuitivos, por lo que son fáciles de
entender y utilizar para un usuario. Comprende elementos como los menús,
ventanas, teclado, ratón, sonidos de alerta, es decir, todos aquellos canales
por medio de los cuales se establece una comunicación efectiva entre el ser
humano y la máquina.
Interfaz gráfica de usuario
Como interfaz gráfica de usuario, también conocida como
GUI (según las siglas en inglés de Graphic User Interface), se conoce el
programa informático que emplea un conjunto de imágenes y objetos en un entorno
gráfico de simulación para representar todas las acciones disponibles para el
usuario en la interfaz. A este sistema se lo denomina WYSIWYG (What You See Is
What You Get, es decir: “lo que ves es lo que obtienes”).
La finalidad de la interfaz gráfica de usuario es ofrecer a
las personas un entorno visual amigable e intuitivo que les facilite la
comunicación con el sistema operativo, la máquina o la computadora. Ejemplos de
interfaces gráficas de usuario serían los entornos de escritorio de sistemas
operativos como Windows, GNU/Linux o Mac OS.
Para explicar el concepto de interface nos valdremos de un
ejemplo:
Supongamos que al crear un programa creamos una ciudad. Para crear la
ciudad no partimos de cero: disponemos de edificios prefabricados (las clases
del API de Java). Pero también disponemos de algo más: de normas de urbanismo
ya definidas (las interfaces del API de Java). Cada norma vamos a decir que es
una interface: nos dice qué debemos cumplir para que al construir un edificio
(clase) se pueda calificar con un nombre determinado. Supongamos una norma
denominada “Edificio a dos aguas”, cuyo contenido incluye:
- El edificio habrá de
tener cuatro paredes.
- El edificio habrá de
tener un tejado formado por dos planos.
- Otras
especificaciones.
Si al construir un edificio se cumplen las condiciones de
las normas de urbanismo, el ayuntamiento nos permite que en la publicidad y
escrituras del edificio conste que se trata de un edificio a dos aguas. Si no
cumplimos las especificaciones, no podemos usar esa denominación. Por ejemplo,
estaría prohibido que un edificio con forma de pentágono y cinco paredes se
denominara “Edificio a dos aguas”. Por el contrario, sería posible denominar
edificio a dos aguas a una capilla que cumpla la norma, también a una vivienda
unifamiliar que la cumpla, o a una biblioteca que la cumpla.
Ahora bien lo trasladamos a
Java. Consideremos la interface “List” que equivale a nuestra norma, cuyo
contenido incluye:
- La clase habrá de
tener un método cuya signatura sea get(int index) que devuelva el objeto de la
lista en la posición especificada por el entero index.
- La clase habrá de
tener un método cuya signatura sea isEmpty() que devuelva un valor booleano
true si la lista no contiene objetos o false en caso contrario.
- Otras especificaciones.
Si una clase cumple y declara que cumple las
especificaciones de la interfaz, decimos que esa clase implementa la interfaz.
Si no cumple las especificaciones, no la implementa. Para implementar la
interfaz la clase ha de incluir todos los métodos que defina la interfaz. Por
ejemplo, una clase que no incluya el método get(int index) no cumplirá la
especificación y por tanto no podrá decirse que implemente la interfaz List.
Veamos ahora cómo empieza la documentación de esta interface del API de Java:
java.util
Interface List<E>
All Superinterfaces:
Collection<E>, Iterable<E>
All Known Implementing Classes:
AbstractList, AbstractSequentialList, ArrayList, AttributeList, LinkedList, RoleList, Stack, Vector
Una interface puede tener “normas” superiores, a las que
denominamos “Superinterfaces”, y “normas” inferiores, a las que
denominamos “Subinterfaces”, de acuerdo con una jerarquía. A su vez, una
interface puede tener clases que la implementan. Por ejemplo en el caso de
List, esta interface está implementada por las clases ArrayList, LinkedList,
Stack y otras. Todas las clases que implementan una interface podemos
decir que tienen algo en común. De esta manera, todas las clases del API de
Java están organizadas.