1
resposta

[Resolução] Faça como eu fiz: notificações de sistema

INotificacao.cs

internal interface INotificacao
{
    void EnviarMensagem(string mensagem);
}

EmailNotificacao.cs

internal class EmailNotificacao : INotificacao
{
    public void EnviarMensagem(string mensagem)
        => Console.WriteLine($"Enviando E-MAIL: {mensagem}");
}

SmsNotificacao.cs

internal class SmsNotificacao : INotificacao
{
    public void EnviarMensagem(string mensagem)
        => Console.WriteLine($"Enviando SMS: {mensagem}");
}

PushNotificacao.cs

internal class PushNotificacao : INotificacao
{
    public void EnviarMensagem(string mensagem)
        => Console.WriteLine($"Enviando PUSH: {mensagem}");
}

Program.cs

using E03NotificacoesDeSistema.Interfaces;
using E03NotificacoesDeSistema.Models;

List<INotificacao> notificacoes =
[
    new EmailNotificacao(),
    new SmsNotificacao(),
    new PushNotificacao()
];

foreach (var notificacao in notificacoes)
    notificacao.EnviarMensagem("Sistema fora do ar!");
1 resposta

Olá, Gerson, como vai?

O código demonstra um bom entendimento sobre a aplicação de polimorfismo de subtipos através de interfaces. Você seguiu corretamente a lógica de criar uma estrutura comum com a interface INotificacao e implementou o método de envio de forma específica para cada classe, garantindo que o sistema possa ser expandido facilmente para novos canais de comunicação no futuro.

Parabéns por compartilhar sua resolução e continue praticando para fortalecer seu aprendizado. O fórum segue à disposição para qualquer dúvida que surgir durante seus estudos.

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