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.

Preguntas similare

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.



Respuesta Responder a este mensaje
#2 luis
23/06/2004 - 16:28 | Informe spam
Muchas gracias Ariel.

Dónde podría encontrar diagramas UML de ejemplos de aplicaciones? , seguro
que así (junto con tu explicación) me centraría mucho mas.

Reitero mi agradecimiento.


"Ariel Popovsky" escribió en el mensaje
news:
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.
>
>
>


Respuesta Responder a este mensaje
#3 Ariel Popovsky
24/06/2004 - 00:44 | Informe spam
A lo mejor esto sea un poco avanzado, pero aca hacen uso extensivo de
interfaces para implementar una serie de Patterns en C#.
Es un excelente recurso: http://www.dofactory.com/patterns/Patterns.aspx

Saludos!
Ariel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida