using System.Collections.Generic;
public static void Main()
List<IEmailClient> clients = new List<IEmailClient>();
clients.Add(new SendGrid());
clients.Add(new MailJet());
var emailService = new EmailService(clients);
emailService.sendEmail();
public class EmailService
protected List<IEmailClient> clients;
public EmailService(List<IEmailClient> clients)
foreach (IEmailClient client in this.clients)
public interface IEmailClient
public class SendGrid: IEmailClient
Console.WriteLine("SendGrid sending email");
Console.WriteLine("Error");
Console.WriteLine("Sendgrid email sent");
public class MailJet: IEmailClient
Console.WriteLine("Mailjet sending email");
Console.WriteLine("Error");
Console.WriteLine("Mailjet email sent");