Interfaces en C#
Las interfaces son contratos que definen un conjunto de miembros que una clase o struct debe implementar. Son fundamentales en la programación orientada a objetos porque permiten definir comportamientos comunes de manera abstracta, fomentando la reutilización, el desacoplamiento y la flexibilidad del código.
Definir una interfaz
Una interfaz se define usando la palabra clave interface
.
Puede declarar métodos, propiedades, eventos o indexadores sin proporcionar implementación.
public interface IVehiculo { void Conducir(); int VelocidadMaxima { get; } }
Aquí, IVehiculo
define un método y una propiedad que cualquier clase que la implemente debe
definir.
Implementar una interfaz
Una clase usa la palabra clave :
para indicar que implementa la interfaz y debe proporcionar la
lógica de sus miembros.
public class Coche : IVehiculo { public int VelocidadMaxima { get; } = 200; public void Conducir() { Console.WriteLine("El coche está en marcha."); } }
Esto permite tratar todos los objetos que implementan IVehiculo
de forma uniforme.
Uso del polimorfismo con interfaces
Puedes declarar variables del tipo de la interfaz para usar cualquier implementación concreta.
IVehiculo miVehiculo = new Coche(); miVehiculo.Conducir(); // Salida: El coche está en marcha.
Esto facilita el diseño orientado a interfaces y promueve el principio de inversión de dependencias.
Buenas Prácticas
Usa interfaces para definir comportamientos comunes entre clases no relacionadas.
Evita inflarlas con demasiados miembros.
Prefiere inyectar dependencias por interfaz para hacer el código más testeable y flexible.
Nómbralas con el prefijo I
por convención.