Interfaz (informática)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

En informática, una interfaz es un límite compartido a través del cual dos o más componentes separados de un sistema informático intercambian información. El intercambio puede realizarse entre software, hardware informático, dispositivos periféricos, humanos y combinaciones de estos. Algunos dispositivos de hardware de computadora, como una pantalla táctil, pueden enviar y recibir datos a través de la interfaz, mientras que otros, como un mouse o un micrófono, solo pueden proporcionar una interfaz para enviar datos a un sistema determinado.

Interfaces de hardware

Interfaz de hardware de un ordenador portátil: Enchufe de red Ethernet (centro), a la izquierda una parte del puerto VGA, a la derecha (upper) una toma de puerto de pantalla, a la derecha (más baja) un enchufe USB-B.

Existen interfaces de hardware en muchos componentes, como los distintos buses, dispositivos de almacenamiento, otros dispositivos de E/S, etc. Una interfaz de hardware se describe mediante las señales mecánicas, eléctricas y lógicas en la interfaz y el protocolo para secuenciarlas. (a veces llamado señalización). Una interfaz estándar, como SCSI, desacopla el diseño y la introducción de hardware informático, como los dispositivos de E/S, del diseño y la introducción de otros componentes de un sistema informático, permitiendo así a los usuarios y fabricantes una gran flexibilidad en la implementación de sistemas informáticos.. Las interfaces de hardware pueden ser paralelas con varias conexiones eléctricas que transportan partes de los datos simultáneamente o en serie donde los datos se envían un bit a la vez.

Interfaces de software

Una interfaz de software puede referirse a una amplia gama de diferentes tipos de interfaz en diferentes "niveles". Por ejemplo, un sistema operativo puede interactuar con piezas de hardware. Es posible que las aplicaciones o programas que se ejecutan en el sistema operativo necesiten interactuar a través de flujos de datos, filtros y canalizaciones. En los programas orientados a objetos, es posible que los objetos dentro de una aplicación necesiten interactuar mediante métodos.

En la práctica

Un principio clave del diseño es prohibir el acceso a todos los recursos de forma predeterminada, permitiendo el acceso sólo a través de puntos de entrada bien definidos, es decir, interfaces. Las interfaces de software brindan acceso a los recursos informáticos (como memoria, CPU, almacenamiento, etc.) del sistema informático subyacente; El acceso directo (es decir, no a través de interfaces bien diseñadas) a dichos recursos por parte del software puede tener ramificaciones importantes, a veces desastrosas, para la funcionalidad y la estabilidad.

Las interfaces entre componentes de software pueden proporcionar constantes, tipos de datos, tipos de procedimientos, especificaciones de excepción y firmas de métodos. A veces, las variables públicas también se definen como parte de una interfaz.

La interfaz de un módulo de software A se define deliberadamente por separado de la implementación de ese módulo. Este último contiene el código real de los procedimientos y métodos descritos en la interfaz, así como otros datos "privados". variables, procedimientos, etc. Otro módulo de software B, por ejemplo el cliente de A, que interactúa con A se ve obligado a hacerlo sólo a través de la interfaz publicada. Una ventaja práctica de este arreglo es que reemplazar la implementación de A con otra implementación de la misma interfaz no debería causar que B falle: ¿cómo A Cumple internamente los requisitos de la interfaz no es relevante para B, que solo se ocupa de las especificaciones de la interfaz. (Ver también principio de sustitución de Liskov).

En lenguajes orientados a objetos

En algunos lenguajes orientados a objetos, especialmente aquellos sin herencia múltiple completa, el término interfaz se utiliza para definir un tipo abstracto que actúa como una abstracción de una clase. No contiene datos, pero define comportamientos como firmas de métodos. Se dice que una clase que tiene código y datos para todos los métodos correspondientes a esa interfaz y lo declara implementa esa interfaz. Además, incluso en lenguajes de herencia única, se pueden implementar múltiples interfaces y, por lo tanto, pueden ser de diferentes tipos al mismo tiempo.

Una interfaz es, por tanto, una definición de tipo; En cualquier lugar donde se pueda intercambiar un objeto (por ejemplo, en una función o llamada a un método), el tipo del objeto a intercambiar se puede definir en términos de una de sus interfaces implementadas. s o clases base en lugar de especificar la clase específica. Este enfoque significa que se puede utilizar cualquier clase que implemente esa interfaz. Por ejemplo, se puede utilizar una implementación ficticia para permitir que el desarrollo avance antes de que la implementación final esté disponible. En otro caso, se puede sustituir una implementación falsa o simulada durante la prueba. Estas implementaciones de código auxiliar se reemplazan por código real más adelante en el proceso de desarrollo.

Por lo general, un método definido en una interfaz no contiene código y por lo tanto no puede ser invocado; debe implementarse mediante código no abstracto que se ejecutará cuando se invoque. Una interfaz llamada "Stack" Podría definir dos métodos: push() y pop(). Se puede implementar de diferentes maneras, por ejemplo, FastStack y GenericStack; el primero es rápido y trabaja con una estructura de datos de tamaño fijo, y el segundo usa una estructura de datos. que se puede cambiar de tamaño, pero a costa de una velocidad algo menor.

Aunque las interfaces pueden contener muchos métodos, pueden contener sólo uno o incluso ninguno. Por ejemplo, el lenguaje Java define la interfaz Legible< /code> que tiene la única clase read(); Se utilizan varias implementaciones para diferentes propósitos, incluido BufferedReader< /code>, FileReader, < código class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr">InputStreamReader, PipedReader y StringReader. Las interfaces de marcador como Serializable no contienen métodos en absoluto y sirven para proporcionar información de tiempo de ejecución para el procesamiento genérico utilizando Reflection.

Programación de la interfaz

El uso de interfaces permite un estilo de programación llamado programación en la interfaz. La idea detrás de este enfoque es basar la lógica de programación en las interfaces de los objetos utilizados, en lugar de en detalles de implementación interna. La programación en la interfaz reduce la dependencia de los detalles de implementación y hace que el código sea más reutilizable.

Llevando esta idea al extremo, la inversión de control deja el contexto para inyectar el código con las implementaciones específicas de la interfaz que se utilizará para realizar el trabajo.

Interfaces de usuario

Una interfaz de usuario es un punto de interacción entre una computadora y los humanos; incluye cualquier número de modalidades de interacción (como gráficos, sonido, posición, movimiento, etc.) donde se transfieren datos entre el usuario y el sistema informático.

Contenido relacionado

Tarjeta perforada

Una tarjeta perforada es un trozo de papel rígido que contiene datos digitales representados por la presencia o ausencia de agujeros en posiciones...

CPython

CPython es la implementación de referencia del lenguaje de programación Python. Escrito en C y Python, CPython es la implementación predeterminada y más...

Arquitectura Harvard

La Arquitectura Harvard es un modelo de arquitectura informática que separa físicamente la memoria de código de programa de la memoria de almacenamiento de...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save