Está en la página 1de 5

Prof.

Jhurcarys Viña Programación II

Unidad 5.- Interfaces

Definición
Las interfaces se utilizan en la POO para definir un conjunto de métodos que implementa una clase. Una clase puede
implementar varias interfaces o conjuntos de métodos. Es común implementar en la práctica el uso de interfaces para
suplir la falta de herencia múltiple en lenguajes como PHP o Java.

Las interfaces son similares a la herencia, mientras que la herencia “agrupa” clases que “son similares” (relación de
parentesco), la interface “agrupa” clases que “que realizan las mismas operaciones” (pero no necesariamente son
iguales).

Este concepto también es muy similar al de la clase abstracta. Se utiliza para definir una interfaz (conjunto de
métodos) y forzar a que las clases derivadas implementen la funcionalidad necesaria para dar soporte a ese interfaz.
Dicho de otra manera, en una interfaz se definen un conjunto de funciones que se deben codificar en las clases que
implementen dicha interfaz. Esto se hace con la finalidad, de que cuando una clase implementa una interfaz, estemos
seguros que en su código están contenidas las funciones que incluía esa interfaz.

Las interfaces permiten crear código que especifique cuales métodos debe implementar una clase, sin tener como esos
métodos son manejados. La palabra clave para definir una interfaz es “interface”. Todos los métodos declarados en
una interface deben ser públicos.

Para implementar una interface se usa la palabra clave “implements” en la declaración de una clase. Todos los
métodos en la interface deben ser implementados dentro de la clase. Las clases pueden implementar más de una
interface si lo desean, separando cada interface con una coma. Una clase no puede implementar dos interfaces que
comparten nombre de función, ya que causaría ambigüedad.

Las interfaces pueden ser extendidas al igual que las clases usando la palabra clave extends. Es posible para las
interfaces tener constantes, las cuales se declaran igual que en una clase, pero no pueden ser sobreescritas por una
clase/interface que las hereden.

En el siguiente ejemplo se muestra el código para realizar una interfaz, específicamente veremos el código de la
interfaz encendible:

/*Aquí se define la interface encendible que agrupa los métodos encender y apagar que pueden se implementados por
aquellas clases cuyos objetos se puedan encender y apagar*/
interface encendible{
public function encender();
public function apagar();
}
Recordemos que en una interfaz los métodos no se deben codificar solo deben ser declarados.

Una vez definida la interfaz podemos implementarla como sigue:


class ventilador implements encendible{
private $enchufado = 1;
private $estado =”apagado”;
public function encender(){ //función que permite encender el ventilador
if ($this->estado == “apagado”){
if ($this->enchufado == 1){
$this->estado = "encendido";
echo " Ahora estoy encendido!!! <br />";
Prof. Jhurcarys Viña Programación II

}else{
echo "Conectar enchufe en la tablilla ";
} else{
echo " Ya estaba encendido <br />";
}
}
public function apagar(){ //función que permite apagar el ventilador
if ($this->estado == "encendido"){
$this->estado = "apagado";
echo " Ahora estoy apagado!!! <br />";
}else{
echo "Ya estaba apagado ";}
}
}

Nótese que para implementar una interfaz, se debe utilizar en la declaración de la clase la palabra implements, seguida
del nombre de la interfaz que se va a implementar. También se pueden implementar varias interfaces en la misma
clase, en cuyo caso se indicarían todos los nombres de las interfaces separadas por comas.
En el siguiente ejemplo la clase auto implementa la interfaz encendible
class auto implements encendible{
private $cant_gasolina;
private $carga_bateria;
private $estado = "apagado";
function __construct(){
$this->cant_gasolina = 15;
$this->carga_bateria = 10;
}
public function encender(){ //función que permite encender el auto
if ($this->estado == "apagado"){
if ($this->bateria > 0){
if ($this->cant_gasolina > 0){
$this->estado = "encendido";
$this->carga_bateria --;
echo "estoy encendido!!! <br />";
}else{
echo " No tengo gasolina <br />"; }

}else{
echo " No tengo batería <br />";
}
}else{
echo "Ya estaba encendido <br />";
}
}
public function apagar(){ //función que permite apagar el auto
if ($this->estado == "encendido"){
$this->estado = "apagado";
echo " estoy apagado!!! <br />";
}else{
echo "Ya estaba apagado ";
Prof. Jhurcarys Viña Programación II

}
}
//Método para cargar gasolina cuando el tanque lo requiera
public function cargar_gasolina($litros){
$this->gasolina += $litros;
echo "<br>Cargados $litros litros";
}
}

Comparando este ejemplo con el anterior nos podemos dar cuenta que no hay mucho en común entre las clases
ventilador y auto. El código para encender una ventilador es mucho más simple, que para encender un auto, ya que es
necesario realizar otras funciones, como por ejemplo verificar que el auto no este encendido, que el tanque tenga
gasolina y que la batería este cargada. Además se añadió un método constructor y una para cargar gasolina cuando sea
requerida.

En cuanto al método apagar solo se verifica para ver si estaba o no el auto apagado, aquí si existe una similitud entre
ambos métodos, la diferencia es que los objetos pertenecen a clases diferentes auto y ventilador respectivamente. Al
realizar la comparación pudimos comprobar el comportamiento polimórfico de la función "encender", obteniendo
diferentes resultados de acuerdo al contexto en el que se está ejecutando dicha función. Esto implica que se ha logrado
establecer una relación polimórfica con objetos de diferente naturaleza gracias a la utilización de interfaces, sin que se
haya tenido que establecer una jerarquía de clases.

Beneficios

métodos (nombres y parámetros).


cer relaciones entre clases que no estén relacionadas.

existencia de variables polimórficas y la invocación polimórfica de métodos.


Separar la especificación de una clase (qué hace) de la implementación (cómo lo hace), se ha comprobado que da
lugar a programas más robustos y con menos errores.
ndo esa
interfaz), esto nos ahorra código evitando tener que escribir las mismas declaraciones de constantes en diferentes
clases.

BIBLIOGRAFÍA

Rojas, A. 2013. Manual De Programación Orientado A Objeto De Apoyo Al Aprendizaje De Los Estudiantes Del
Saber Programación II.U. P.T. P. Luis Mariano Rivera.

Interfaz de Usuario

Definición
La interfaz de usuario (UI) es el medio con que el usuario puede comunicarse con una máquina (usualmente algún tipo
de computadora), y comprende todos los puntos de contacto entre el usuario y el equipo.

Normalmente las interfaces suelen ser fáciles de entender y fáciles de accionar, aunque requieran cierto aprendizaje.
Actualmente la tendencia es crear interfaces con elementos similares entre sí (visualmente y/o en su manipulación), de
esta manera los usuarios se familiarizan más rápidamente con una nuevo dispositivo.
Prof. Jhurcarys Viña Programación II

De forma sencilla, podemos definirla como el medio a través del cual el usuario interactúa con un dispositivo
tecnológico. Esto abarca todos los puntos de contacto entre la persona y el equipo.

¿Qué tipos de interfaz de usuario existen?


Existen 3 tipos de interfaz de usuario según su diseño y propósito:

1. Interfaz de hardware: Engloba todos aquellos elementos que permiten ingresar, procesar y entregar datos,
como los famosos teclados y “ratones”, así como las pantallas.
2. Interfaz de software: Es aquella que brinda información sobre los procesos y herramientas de control, la cual
puede ser observada fácilmente por el usuario en la pantalla de su dispositivo.
3. Interfaz software-hardware: Dentro de la interfaz del usuario, esta es la que sirve de puente entre la máquina y
las personas.
Genera un círculo virtuoso en el cual el dispositivo comprende las instrucciones del individuo y, a su vez, este
entiende la información del aparato, a través de la traducción del código binario a elementos simples.

¿Cuáles son las características de la interfaz de usuario?

Claridad: Una buena interfaz transmite la información de manera precisa para evitar que el usuario cometa errores
durante la interacción.

Concisión: Se trata de darle al usuario solo la información que necesita y pide.

Coherencia: Esta característica es la que hace intuitiva una interfaz, permitiéndole a la persona crear patrones de uso
de manera sencilla y práctica.

Flexibilidad: Una buena interfaz también se caracteriza por permitir que el usuario restaure elementos y deshaga
acciones.

Atractivo visual: Cuando se trata de experiencia del usuario, nunca puede subestimarse la importancia del atractivo
visual. Además de tener grandes funcionalidades, una buena interfaz es agradable a la vista.

¿Cómo funciona el diseño de una interfaz de usuario?


El diseño de la interfaz del usuario debe estar desarrollado bajo altos estándares de calidad. De hecho, existen
parámetros internacionales y mundiales sobre las buenas prácticas para desarrollar este elemento.

Quizás, el estándar más conocido y seguido es la norma ISO 9241, que se centra en la ergonomía de la interacción
entre la persona y el sistema, específicamente en aspectos como la facilidad de la comunicación y el dinamismo.

Dentro de una página web, aplicación o cualquier herramienta digital, el diseño de la interfaz del usuario debe
garantizar tolerancia a los errores, personalización, control, adecuación al aprendizaje y, sobre todo, conformidad con
las expectativas del usuario.

Además, el diseño de una interfaz busca la adecuación a la tarea y la auto descripción.

Asimismo, existen principios de coherencia y calidad gráfica que deben seguirse para desarrollar una interfaz, como
emplear códigos de colores para apoyar las tareas de los usuarios, minimalismo y estandarización.
Prof. Jhurcarys Viña Programación II

Directrices y reglas
Cuando se diseñan interfaces gráficas de usuario, existen pautas que ayudan a mejorar la facilidad de uso así como la
estandarización. Ejemplos de ello son las ocho reglas de oro de Ben Shneiderman. A continuación se describen
algunas de estas reglas:

Consistencia: Consistencia significa básicamente que una interacción debe ocurrir siempre de la misma manera. Aquí
debe evitarse lo siguiente: una barra de menús con opciones como "copiar el área marcada", "eliminar el área
seleccionada", "añadir el área seleccionada". Este ejemplo muestra inconsistencia y debe evitarse en una UI.

Retroalimentación informativa: Cada acción del usuario debe ir siempre seguida de una retroalimentación. Por
ejemplo, si al hacer doble clic se abre un programa determinado, es posible que el usuario tenga que esperar unos
segundos antes de poder utilizar el software. Para que el usuario sepa que el doble clic funcionó, es necesaria la
retroalimentación. Esto puede ser en forma de un cambio en la forma del cursor. El ejemplo más antiguo es el reloj de
arena de Windows.

No abrumes la memoria a corto plazo de los usuarios: Los usuarios no pueden memorizarlo todo. Para diálogos
largos que se extienden a lo largo de varias ventanas cambiantes, la información debe mostrarse siempre en la misma
posición y ninguna información, que estaba disponible al principio, debe faltar al final.

Conclusiones
Las mejores interfaces son aquellas que nos hacen olvidar que estamos interactuando con una máquina, dispositivo o
aplicación.

En cambio, nos muestran que nos comunicamos con un elemento que forma parte indispensable de nuestras vidas y
que es tan real y útil como nuestras manos y sentidos.

¡Es increíble el alcance de una interfaz de usuario de calidad!

Asignación de Interfaz de Usuario

INSTRUCCIONES
Se les pide hacer una evaluación detallada de todos los elementos que conforman los enlaces asignados tomando en
cuenta lo discutido en clases en todo momento ubíquese como usuario.

Nro Cédula Nombre y Apellido Asignación


1 27.674.644 Cabello José www.banesco.com
2 27.573.929 Cova Yeilis www.bancomercantil.com
3 26.230.806 Espinoza Grebelyn www. cantv.net
4 17.022.596 Gómez María www.bancodevenezuela.com
5 19708967 Hernández Alexis www.toyota.com.ve
6 28.529.513 Hernández Ogleidys www.uba.edu.ve
7 17.779.616 Jiménez Yoleidy www.ula.ve
8 27.483.020 Ramos Ricardo http://www.grancacique.com.ve/
9 26.421.909 Rodríguez Sara www.tucarro.com.ve
10 25.996.869 Salazar Delianna www.cinex.com.ve
11 27.871.692 Sanchez Andrys www.seniat.gov.ve

También podría gustarte