InterfaseMarcada

1 Sinopsis

Se define una interfase que permite identificar que accion se debe tomar, basandose en el tipo de dato. Dicha interfase no tiene ningun metodo asociado.

2 Contexto

En Java se necesita hacer un esquema en el cual se represente en formato de bytes, los valores de las propiedades de una clase. A esto se le llama serializar. Lo que se propone es que se defina una interfase denominada Serializable, la cual no tiene ningun metodo asociado. Pero, si un servicio de persistencia (guardar en archivos, enviar por la red (como Remote Method Invocation)) necesita saber si un objeto se puede representar como bytes; la clase del objeto debe implementar la interfase marcada, Serializable.

3 Solucion

4 Consecuencias

5 Ejemplo

En La Salle se tiene prohibido que entre alguien ebrio. Se deja que cualquier objeto entre a La Salle, exceptuando un ebrio. Existe un objeto Guardia, que tiene como funcion inspeccionar el tipo de dato de cada objeto.


public class Guardia  {
    ....
}
See the complete code for Guardia here.

El guardia tiene un metodo que se denomina vigilar, recibe cualquier objeto (es decir, su parametro es un Object), pero via el operador instanceof puede preguntar si es un Borracho

  public vigilar(Object o) {
     if ( o instanceof Borracho ) {
        System.out.println("Alarma, un borracho!!!");
     } else {
        System.out.println("Buenos dias, pasele");
     }
  }

La interfase marcable es el concepto de Borracho, se define sin metodos


public interface Borracho  {
    ....
}
See the complete code for Borracho here.

El diagrama UML es el siguiente: