Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/03/2006, 18:05
Avatar de Kaopectate
Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 23 años, 1 mes
Puntos: 38
Hola jorgelujanm.

Te puedo citar dos sitios donde creo son necesarias (mas que convenientes) las interfaces, de seguro alguien mas instruido podrá aportarnos mas.

Cuando programas Web Services (al menos en Delphi), lo que haces es publicar una serie de funciones para que puedan ser usadas por terceras personas (sin importar el lenguaje ni el S.O.). De esta manera, tu le dices al mundo que tu servidor es capaz de responder a los métodos A, B y C, siempre y cuando reciba los parámetros K, L, M y N, etcétera.

Esa definición no es otra cosa que una interfase que habrá de ser implementada por el que desarrolle el servidor, y que habrá de ser utilizada por el que pretenda enlazar con tales métodos.

En Delphi, por ejemplo, si tu mismo eres quien escribe el programa servidor (de un Web Service) y el programa cliente, lo primero que haces es definir la interfase del servicio, y en ambos programas incluyes tal definición.

Es importante notar que si el Web Service es algo mas o menos genérico (como por ejemplo una serie de preguntas sobre la existencia o no de libros en las librerías) cada grupo de trabajo en cada librería podría desarrollar su propio Web Service implementando la misma interfase, y entonces un cliente podrá hacerle las mismas preguntas a cada librería, sin importar que cada librería implementó su servidor en PHP, o en VB, o en Delphi, o en Java.

Mi trabajo con interfases no ha ido muy lejos en realidad, por lo que podría decir mas de una estupidez, pero por lo que he visto, al definir una interfase (en Delphi, insisto) lo que haces es dejar una puerta abierta para que otro implemente.

¿Por que?

Quizás porque la implementación no va a estar necesariamente en el mismo lenguaje.

Quizás porque va a haber mas de una implementación.

Quizás porque un tercero (o terceros) harán la(s) implementacion(es).

Quizás porque estas definiendo algo abstracto que se concretará mas tarde.

¿Aplicaciones prácticas para que tu mismo hagas la interfase y tu mismo la implementación?

Quizás no tenga mucho sentido....

Saludos.