para q sirvern las interfaces y como se implementan???

10/09/2004 - 18:24 por Santiago Altieri | Informe spam
para q sirven las interfaces y q uso les puedo dar?
 

Leer las respuestas

#1 Leonardo Azpurua
11/09/2004 - 00:24 | Informe spam
"Santiago Altieri" escribió en el mensaje
news:
para q sirven las interfaces y q uso les puedo dar?



Hola, Santiago:

Dejame que te doy un ejemplo: tengo un componente que uso para la
presentación por pantalla o la impresión de los formatos de documentos.

Ese componente presenta diferentes clases de objetos: Texto (literales o
referencias a variables), graficos, lineas, cuadros y Areas de Texto (cuyo
contenido se distribuye en un rectángulo).

En esencia, lo que hace el componente es recibir una referencia al Documento
que se va a imprimir (ese documento debe implementar la interfaz
IObjetoPresentacion, que en esencia se reduce a tres métodos:

- EvalVar(ByVal ident As String, ByRef imagen As String, ByRef bin As
Object) As Boolean, mediante el cual el documento devuelve el valor asociado
con una variable.
- ArchivoFormato() As String: El nombre del archivo con las especificaciones
de formato.
- Detalles() As Collection: una colección con los detalles del documento; si
el documento no incluye detalles se devuelve Nothing o una colección vacía.

El archivo de formato está dividido en secciones (Encabezado1, EncabezadoN,
CierreN, CierreZ, Detalles), y cada sección contiene los parametros que
definen un objeto imprimible (IObjetoImprimible).

Cada tipo de objeto imprimible tiene una conducta y una estructura interna
que le es propia; pero debe ser capaz de:
- Leer sus propios parametros de una linea de texto (ParseParametros(ByVal
LineaComandos As String) y configurarse segun su contenido)
- "Presentarse" en un dispositivo de salida: Display(coords As PointF,
Device As Graphics)

Si la "naturaleza"de los diferentes objetos imprimibles fuera más o menos
parecida, tal vez podría haberlos implementado como clases derivadas de una
clase base, ahorrándome así algún esfuerzo de implementación. Pero
internamente no tienen nada en común. Entonces simplemente los hago
"implementar" una interfaz (IObjetoImprimible). Gracias a ello puedo
manejarlos mediante un único conjunto de procedimientos.

En terminos formales, una interfaz es una definición "abstracta" de un tipo
(abstracta, en este caso, significa que el tipo no puede tener una
existencia propia). Cuando una clase implementa una interfaz, sus instancias
pueden ser usadas indistintamente como instancias de la clase, o como
instancias del tipo abstracto definido por la interfaz. A diferencia de la
herencia, que debe ser simple (una clase solo puede heredar DIRECTAMENTE de
una sola clase base) una clase puede implementar tantas interfaces como sea
necesario.

Salud!

Leonardo
mvp vb

Preguntas similares