Inviare notifiche tramite un'interfaccia in C#
In questa lezione invierai notifiche tramite un'interfaccia, rendendo facile cambiare o aggiungere canali di invio senza modificare il codice esistente.
Introduzione
Un'interfaccia separa il codice che invia le notifiche dal canale specifico, come SMS, email o un'app di chat. Il codice che la usa deve solo sapere che l'oggetto ha il metodo Send, mentre ogni classe decide come effettuare l'invio.
Il metodo Notify riceve un parametro di tipo IChannel, quindi funziona con qualsiasi classe che implementi questa interfaccia. Passando l'oggetto Sms, la notifica viene inviata via SMS e il programma stampa SMS: Shipped. Per aggiungere più avanti un canale email, basta creare una nuova classe senza modificare Notify.
Esempio C# eseguibile
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: ShippedEsercitati con il debugger
Esercitati con una sfida
Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.
Tutte le sfide