Enviar notificaciones a través de una interfaz en C#
En esta lección vas a enviar notificaciones a través de una interfaz, lo que permite cambiar o añadir fácilmente un canal de envío sin modificar el código existente.
Introducción
Una interfaz separa el código que envía las notificaciones del canal concreto que se usa, como SMS, correo o una aplicación de mensajería. El código que la usa solo necesita saber que el objeto tiene el método Send, y cada clase decide por sí misma cómo enviar.
El método Notify recibe un parámetro de tipo IChannel, así que funciona con cualquier clase que implemente esa interfaz. Al pasarle un objeto Sms, la notificación se envía por SMS y el programa muestra SMS: Shipped. Para añadir más adelante un canal de correo, basta con crear una clase nueva, sin tocar Notify.
Ejemplo de C# ejecutable
using System;
interface IChannel { void Send(string message); }
class Sms : IChannel { public void Send(string message) => Console.WriteLine($"SMS: {message}"); }
class Program
{
static void Notify(IChannel channel, string message) => channel.Send(message);
static void Main() => Notify(new Sms(), "Shipped");
}
SMS: ShippedPractica con el depurador
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
Todos los retos