Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resposta - Notificações de Sistema

Interface INotification:

namespace exercise90.Models;

internal interface INotification
{
    public void SendMessage(string message);
}

Classe EmailNotification:

namespace exercise90.Models;

internal class EmailNotification : INotification
{
    public void SendMessage(string message)
    {
        Console.WriteLine($"Sending EMAIL: {message}");
    }
}

Classe PushNotification:

namespace exercise90.Models;

internal class PushNotification : INotification
{
    public void SendMessage(string message)
    {
        Console.WriteLine($"Sending PUSH: {message}");
    }
}

Classe SmsNotification:

namespace exercise90.Models;

internal class SmsNotification : INotification
{
    public void SendMessage(string message)
    {
        Console.WriteLine($"Sending SMS: {message}");
    }
}

Instâncias:

using exercise90.Models;

List<INotification> notifications = new List<INotification>
{
    new EmailNotification(),
    new SmsNotification(),
    new PushNotification()
};

foreach (var notification in notifications)
{
    notification.SendMessage("System is down!");
}
2 respostas
solução!

Oi, Carlos.

Agradeço por compartilhar. Gostei da sua implementação, principalmente da forma como você aplicou o polimorfismo de subtipos usando a interface INotification, deixando o código organizado e fácil de estender com novos tipos de notificação. Isso mostra um bom entendimento de como trabalhar com contratos e listas tipadas por interface.

Continue explorando esse conceito, pois ele é importante para criar sistemas flexíveis e de fácil manutenção.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Obrigado pelo suporte, Lorena.