Interface - Tensho97/Aprende-a-Aprender GitHub Wiki
Patrón Interface
Utilidades y ventajas
Utilidad: Definir un comportamiento independiente de donde vaya a ser usado.
Ventajas:
- Desacople entre comportamiento y clase.
- Realizacion de clases "Utiles".
Problema
class Utilities{
void imprimirEstructura( ¿¿?? o) {
o.irAlPrimero();
while(o.tieneElems());
imprimir(o.obtenerSiguiente());
}
}
Todos los objetos o, tiene que implementar: irAlprimero(), tieneElems(), obtenerSiguiente().
PROBLEMA: De que tipo son los objetos o?
Solución
Definir los parámetros de un tipo Interfaz. Todas las clases(instancias) que quieran usar ese comportamiento deberán implementar dicho interfaz. Esto es:
Partiendo del ejemplo anterior, La clase Utilities.
Clase Utilites{
ImprimirEstructura (Recorrible o);
}
Definimos un interface de Recorrible:
Interfaz Recorrible{
irAlPrimero();
tieneElems();
obtenerSiguiente();
}
A partir de esto cualquiera clase puede implementar esa interface para usar ese comportamiento.
Implementación con ejemplo
class MiClase<T> implements Recorrible<T>{
Vertor<T> v = new Vector<T>();
int pos;
void irAlPrimero(){
pos=0;
}
boolean tieneElems() {
v.lenght<pos;
}
T obtenerSiguiene(){
T o = v.elementAt(pos);
pos++;
return o;
}
}
Autor : Miguel