Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
}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
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.
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.
Claridad: Una buena interfaz transmite la información de manera precisa para evitar que el usuario cometa errores
durante la interacción.
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.
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.
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.
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.