Dudas Básicas. INTERFACES

23/06/2004 - 11:42 por luis | Informe spam
Hola a tod@s:

Estoy empezando en esto de la POO, y concretamente con el C#.
He leido un par de libros del tema y me surgen unas cuantas dudas.
Empezaré con las INTERFACES.
Se como definirlas , cómo implementarlas, sintaxis, etx. Pero mi duda
es:
Si una interface sólo define miembros, cual es su utilidad
práctica.Según lo que he leido "sólo" obliga a las clases que las
implementen a tener sus miembros. Que utilidad tienen?, no sería lo mismo si
defino dichas clases con esos miembros y no hago la interface?.

Muchas gracias, y perdón si es demasiado "básica" la duda.
 

Leer las respuestas

#1 Ariel Popovsky
23/06/2004 - 13:51 | Informe spam
Hola Luis!

En primer lugar la interfaz es una especie de contrato. Cuando una clase
declara implementar una interfaz determinada te esta garantizando que tiene
ciertos métodos y propiedades. Aunque no conozcas la clase, puedes accederla
a través de la interfaz que conoces.
Vamos a algo práctico. Cuando trabajas con ADO.net tienes que utilizar un
provider para cada tipo de base de datos que uses. Ahora suponte que tienes
un método que devuelve un DataReader. Cada provider define su propio
DataReader (SqlDataReader, OracleDataReader, etc), si quieres tener
independencia del provider que utilizas puedes devolver la interfaz del
objeto de esta forma:

public IDataReader GetUsuarios()
{
IDataReader reader;
if(sql)
reader=(IDataReader) sqlCommand.ExecuteReader();
else if(oracle)
reader=(IDataReader) oraCommand.ExecuteReader();
return reader;
}

Otro beneficio de las interfaces es que aunque no puedes aplicar herencia
múltiple en C# (extender mas de una clase), puedes implementar mas de una
interfaz.
Seguramente a medida que vayas haciendo cosas en C# vas a ir viendo todas
las cosas en las que es util usar interfaces.
Saludos!

Ariel

"luis" <luisenrique> wrote in message
news:
Hola a :

Estoy empezando en esto de la POO, y concretamente con el C#.
He leido un par de libros del tema y me surgen unas cuantas dudas.
Empezaré con las INTERFACES.
Se como definirlas , cómo implementarlas, sintaxis, etx. Pero mi duda
es:
Si una interface sólo define miembros, cual es su utilidad
práctica.Según lo que he leido "sólo" obliga a las clases que las
implementen a tener sus miembros. Que utilidad tienen?, no sería lo mismo


si
defino dichas clases con esos miembros y no hago la interface?.

Muchas gracias, y perdón si es demasiado "básica" la duda.



Preguntas similares