Cuando empecé a explorar las posibilidades que nos brindan las interfaces, se me complicó entender su utilidad, por eso quiere dedicar este espacio a escribir sobre interfaces (en .net Framework por supuesto)
¿Qué es una interface?
Usualmente la interface es como un contrato. Este contrato lo que tiene es una lista de propiedades, funciones, métodos y eventos incluso clases, estructuras o interfaces anidadas. Cualquier clase que desee implementar una interface debe por obligación de proveer todos los miembros listados en la interface.
Características:
- La interface no contiene lógica de programación
- Minimizan los problemas de compatibilidad
- Facilita el desarrollo, cuando se trabajan con grupos de desarrolladores.
- El .Net Framework utiliza interfaces
Ejemplo 1:
La forma más sencilla de entender este concepto es mediante un ejemplo, veamos la siguiente interface
Interface IfiguraGeometrica Function Area() As Int32 Function Perimetro() As Int32 Property Color() As colores Enum colores Rojo Verde Azul End Enum End Interface |
Esta interface define que toda clase que la tenga que implementar debe desarrollar dos funciones Área y Perímetro además de la propiedad color. Esto nos permite implementar el siguiente código:
Sub Despliega_area(ByVal _figura As IfiguraGeometrica) Console.WriteLine("Área de la figura = {0}", _figura.Area) Console.ReadKey() End Sub |
El código anterior despliega en la consola el área de una figura geométrica, lo interesante es que aún no hemos implementado las clases correspondientes a las figuras geométricas, de hecho podría ser que no conozcamos todas las figuras geométricas, pero mientras implementen la interface nuestro código funcionará sin problemas. Veamos la implementación de la interface en una clase "Cuadrado":
Class Cuadrado Implements IfiguraGeometricaPrivate i_lado As Integer Private _color As IfiguraGeometrica.colores Public Function Area() As Integer Implements IfiguraGeometrica.Area Return i_lado * i_lado End Function Public Property Color() As IfiguraGeometrica.colores Implements IfiguraGeometrica.Color Get Return _color End Get Set(ByVal value As IfiguraGeometrica.colores) _color = value End Set End Property Public Function Perimetro() As Integer Implements IfiguraGeometrica.Perimetro Return i_lado * 4 End Function Public Property Lado() As Integer Get Return i_lado End Get Set(ByVal value As Integer) i_lado = value End Set End Property End Class |
Interfaces del .Net Framework
Como comenté anteriormente el .Net Framework utiliza una serie de interfaces que facilitan que nuestras propias clases puedan hacer uso de algunas funciones ya implementadas, las más comunes son las siguientes:
- IComparable (Utilizada cuando se requiere ordenar )
- IDisposable (Cuando se necesitan liberar recursos manualmente)
- IConvertible (Cuando se necesita convertir la implementación a una clase base)
- ICloneable (Cuando se requiere clonar el objeto)
- IEquatable (Habilita la comparación entre dos instancias)
- IFormattable (Permite convertir el valor del objeto en un string con un formato específico)
1 comentario:
Hola Alejandro, te comento que con esta explicación me abristes mucho más el panorama de lo que me han explicado en la facultad.
Te lo agradezco!.
Saludos y suerte!
Publicar un comentario