Ejercicios de C#

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

C#
Ejecutar código →
Program.cs
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");
}
Resultado de la ejecución
SMS: Shipped

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

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