Ver Mensaje Individual
  #10 (permalink)  
Antiguo 27/02/2007, 01:12
GreenEyed
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Re: ayuda con interface

Cita:
Iniciado por chuidiang Ver Mensaje
La teoría está muy bien, pero al final la interface sirve para lo que comenté, para aislar unas clases de otras, haciendo que se vean a través de interfaces y no directamente y evitar además dependencias indirectas.

Lo del contrato es cierto, lo de diseño más elegante es cierto, pero no explican la utilidad práctica.
No es lo mismo una definición que el uso que se le da a algo, aunque esté bien saber las dos cosas. Una interfaz te define una serie de métodos que una clase no-abstracta debe implementar obligatoriamente. A partir de eso, tu puedes usar los objetos de esa clase a través de la interfaz, llamando esos metodos que estás seguro de que existen, sin necesitar saber que clase hay por debajo.

Siguiendo el ejemplo, tu puedes hacer un programa que controle el tráfico trabajando con los metodos de la interfaz Transporte, y luego aplicar ese programa a Moto, Automovil, Camion... por que todos implementan esa interfaz. Si no usas la interfaz, tienes que tratar cada caso en particular haciendo if y cast.

Para ejemplo "diario" de interfaces que todo el mundo usa en sus programas, toda la libreria de Collection (Map, List, Tree, Iterator...) esta basada en el uso de interfaces (y clases abstractas en algun caso).