Implementación de interfaces en C# con ILogger
Clase 19 de 25 • Curso de Introducción a .NET con C#
Resumen
Dominar las interfaces en C# puede parecer retador al inicio, pero mediante ejemplos prácticos y simples puedes comprender su utilidad rápidamente. Este recurso te mostrará cómo crear una interfaz básica llamada ILogger
en C# y cómo implementarla para mostrar mensajes tanto en la consola como en un archivo de texto, facilitando el entendimiento mediante un ejercicio visual y práctico.
¿Qué es una interfaz y cómo implementarla en C#?
Una interfaz en C# define métodos que pueden ser implementados de diferentes maneras en distintas clases. Aquí creamos una interfaz llamada ILogger
con un solo método llamado Log
. Observa el siguiente ejemplo práctico para comprenderlo fácilmente:
public interface ILogger
{
void Log(string mensaje);
}
Al implementar esta interfaz, establece un método obligatorio que otras clases deben definir de manera específica, adaptándose a distintos requerimientos según se necesite.
¿Cómo utilizar interfaces para mostrar mensajes en Consola?
Para implementar un método que muestre mensajes en la consola, creas una nueva clase que implemente ILogger
. Observa cómo hacerlo:
public class ConsoleLogger : ILogger
{
public void Log(string mensaje)
{
Console.WriteLine(mensaje);
}
}
Al ejecutar este código, cualquier mensaje pasado al método Log
aparecerá en tu consola, facilitando una visualización inmediata del mensaje.
¿Cómo implementar interfaces para escribir mensajes en un archivo?
Otra forma útil de usar interfaces es almacenando mensajes en un archivo de texto. Implementa la interfaz así:
public class FileLogger : ILogger
{
public void Log(string mensaje)
{
System.IO.File.WriteAllText("log.txt", mensaje);
}
}
Al usar esta clase, cada vez que invocas el método Log
, tu mensaje se guarda directamente en un archivo de texto en lugar de mostrarse en consola.
¿Cuál es la diferencia práctica entre ambas implementaciones?
Aunque ambas clases implementaron la misma interfaz y método (Log
), su comportamiento es totalmente distinto:
ConsoleLogger
muestra el mensaje de forma inmediata en pantalla.FileLogger
almacena el mensaje en un archivo de texto, útil para registros permanentes.
Esta flexibilidad es precisamente la fuerza detrás del uso de interfaces.
¿Cómo aplicar lo aprendido en nuevas prácticas?
Para una mejor fijación del concepto de interfaces en C#, sería útil seguir con un ejercicio adicional práctico:
- Crea una nueva clase llamada
HybridLogger
que combine la funcionalidad de ambas implementaciones anteriores. - Al utilizar esta nueva clase, asegúrate de que cada mensaje se muestre simultáneamente en consola y se guarde en un archivo de texto.
Realizar este ejercicio no solo refuerza tu conocimiento sobre interfaces, sino que también te ayuda a prepararte mejor para casos reales donde aplicaciones requieren múltiples tipos de salida simultánea.
¿Qué otros ejemplos prácticos quisieras explorar con interfaces en C#? ¡Comenta y comparte tus ideas!