Continuamos con la interfases en Yaba, pero es una introducción porque desplomo hacer más en detalle
solamente para este ejemplo.
Así que no voy a entrar mucho en detalle tampoco no explicar tanta profundidad de.
Por ahora solamente lo básico para poder comprender este cambio o mejora que vamos a realizar usando
la interfaz.
Bueno, resumiendo, una interfaz es para un diseño propone un diseño, es decir, que clases implementen
comportamiento y tiene una diferencia con la clase abstracta.
Bueno, ambos pueden tener métodos abstractos.
Una interfaz tiene método abstracto, aunque no se coloca la palabra abstracta, pero son métodos sin
implementar y estos métodos lo tienen que implementar las clases que implementan esta interfaz.
Pero entonces, cuál es la diferencia con una clase abstracta?
Simple, una clase abstracta, además del método del comportamiento.
También le dice a los objetos lo que son, es decir, son elementos formulario, son valedores, es
decir, son parte de una jerarquía de clases.
Pero también dice lo que hacen, qué comportamiento, qué métodos tienen que implementar eso de la clase
abstracta y el que hemos visto.
Pero la interfaces da lo mismo lo que son.
Pueden ser variadores, pueden ser elemento de formulario, puede ser un automóvil, en fin, cualquier
tipo objeto, pero agrupa estos objetos, estos tipos, bajo un mismo comportamiento.
Entonces no hay una relación de parentesco, no hay una relación familiar.
Solamente lo que lo une es lo que hacen el método o el comportamiento que se le conoce como contrato
de implementación.
Por poner un ejemplo bien simple un avión vuela, no?
Cierto, un helicóptero vuela perfecto.
Ambos son vehículos y están relacionados.
Quizá hay un parentesco, pero un murciélago o un ave, una gaviota, un pelícano, un halcón también
vuelan.
Se fijan el mismo comportamiento en el avión, pero son Cosac objeto.
Nada que ver, cosa distinta.
Bueno, a este comportamiento, el método de la interfaz volar.
Entonces un avión implemente el ITER, fabular, implemente el método una gaviota también un pelícano
también un insecto también vuela y son cosas completamente diferentes.
Bueno, sin más vamos a implementarla.
Entonces, para dar un orden en validador, vamos a crear un package para crear esta interfaz para guardarla.
Message Ok, mensaje y acá la interfaz.
En vez de clase colocamos si lleva clase, ya colocamos interface o interfaz.
Le vamos a llamar mensaje formateado.
También vamos a ver que los nombre de interface por lo general terminan en able o en ible formato table
ejecutable porque realiza un comportamiento acción contable comparable.
Si se fija la interfaz de Java comparable para comprar objeto, se fijan.
Nombre comparable.
Acá le vamos a llamar mensaje.
Pero no es que tenga que ser así.
También le pongo locar mensaje, formato o formatear, pero típicamente terminan enable o nible y muchas
veces se le coloca la mayúscula para indicar que es una interfaz y mensaje formatear.
Y mayúscula de interfaz.
Pero bien, no, jamás de esa forma es completamente abstracto.
Métodos sin implementar.
Entonces, la idea que implementa el método GTD, ÂQuÃ mensaje formateado Vitolo de comentar acÃ.
Solamente lo vamos a comentar para que lo vean.
Listo.
Voy a copiar esto.
Lo dejamos acá.
Bien, entonces cualquier clase que implementa esta interfaz tiene que implementar este método.
Public String get mensaje formateado con el parámetro argumento campo.
Esto es lo primero.
No se preocupen este error.
Entonces vámonos a largo validador largo va a implementar esta interfaz.
Entonces acá implemente
mensaje formatear.
Marque un error porque nos dice que tenemos que implementar este método.
Se fijan.
Implementa el método igual que una clase abstracta, es decir, una clase que implementa la interfaz
con métodos.
Esta clase está obligada a implementar el contrato.
Es un contrato que tienen que cumplir para realizar alguna tarea, algún proceso o trabajo que justamente
formatear el mensaje.
Ok, aunque lo tenemos comentado, pero quería explicar que justamente la interfaz obliga a implementar
este método.
Vamos a copiar esto acá, aunque al final da lo mismo, podríamos de comentar de acá.
Colocamos right?
Porque estamos escribiendo y listo.
Y esto lo eliminamos.
DILIGEN Ahí tenemos el método y desaparecen todos los errores.
Se fijan.
Acá tenemos interfaz, mensaje, formato table.
Implementas solamente el largo Valledor porque necesitamos dar un formato más exclusivo con el nombre
campo.
Entonces ahora nos vamos al elemento for.
Y en vez de instance of largo es en tás of de la interfaz, pero como largo validador la implementa,
largo validador va a caer acá y a formatear.
Entonces, de esa forma, desacoplar o desacoplar?
Una implementación concreta acá?
Claro, porque tendremos que tener mucho.
If it off Si tenemos VAR implementaciones o variadores que requieren este método mientras usamos una
interfaz, es un solo if.
Lo dejamos de forma genérica y cada implementación concreta tiene que implementar esta interfaz como
largo validador.
Entonces acá la interfaz mensaje y listo.
Ese todo cambio.
Entonces así podríamos tener varias clases validad horas concreta que implementa la interfaz y se van
a formatear de esta forma.
Vamos a probar.
El campo clave debe tener un mínimo de este carácter y máximo dos se fijan que hay mucho más desacoplar
el código mucho más limpio.
Imagen Eriko no se amarra, no se acopla largo validador a la clase abstracta.
Acá lo peor es acoplar acá también el cast sería de mensaje formatear le había falta cambiar eso de
la interfaz.
Entonces si es instancia de mensaje fórmate.
L Entonces invocamos el método de la interfaz mensaje formateado independiente si la implementa largo
validador o cualquier otra clase.
Esa es la real esencia y característica de la interfaz.
Hace que nuestro código sea mucho más genérico, modificable y desacoplar implementación concreta mucho
más limpio.
Pero bueno, no se preocupen porque igual vamos a ver después más ejemplo de interfaces y más detalle,
como por ejemplo después vamos a ver que una interfaz soporta la implementación múltiple.
Por ejemplo, una clase puede implementar varias interfaces separado por coma.
A diferencia de la herencia, solamente en la herencia con stents puedo heredar de una sola, pero implementar
interface puedo implementar varias separados por coma.
Incluso lo vimos por ahí.
Creo que List o ArrayList ArrayList si nos vemos acá, si nos vamos acá, por ejemplo, hereda siempre
de una.
Implementa List random klo nable se fija en Klo nable termina en Able.
Ser realizable terminan enable y separado por coma, es decir, puede implementar varios interfaces
porque son varios contrato igual que la vida real.
Una persona puede ejercer mucho trabajo y cada trabajo va a ser un método, un comportamiento o una
interfaz, aunque una interfaz tamé puede tener varios métodos asociado.
Es decir, un contrato involucra varios métodos o actividades varié comportamiento que la clase, la
instancia tienen que cumplir.
Al final es comportamiento puro versus la clase abstracta de comportamiento, pero también jerarquía
en lo que son y lo que hacen.
La interfase solamente lo que hacen, no lo que son.
Bueno, parece que me enrolle mucho y expliqué más de la cuenta de que quería, pero otra forma mejor
elemento form.
Perdón.
Nos vamos a ejemplo.
Vamos a colocar el arroba.
Jondo y bueno.
28.
Faltan solamente largos, nada más.
El campo clave de tener mínimo perfecto.
Ya dice que Talitha está todo válido, sin errores.
Bien, continuamos en la siguiente clase.