1
resposta

Faça como eu fiz: notificações de sistema

Program.cs

using Notificacoes.Modelos;

List<INotificacao> notificacoes = new List<INotificacao> {
    new EmailNotificacao(),
    new SmsNotificacao(),
    new PushNotificacao()
};

Console.Clear();
notificacoes.ForEach(notificacao => notificacao.EnviarMensagem("Sistema fora do ar!"));

INotificacao.cs

namespace Notificacoes.Modelos;
interface INotificacao {
    public void EnviarMensagem(string mensagem);
}

EmailNotificacao.cs

namespace Notificacoes.Modelos;
class EmailNotificacao : INotificacao {

    public void EnviarMensagem(string mensagem) {
        Console.WriteLine($"Enviando Email: {mensagem}");
    }
}

SmsNotificacao.cs

namespace Notificacoes.Modelos;
class SmsNotificacao : INotificacao {
    
    public void EnviarMensagem(string mensagem) {
        Console.WriteLine($"Enviando Sms: {mensagem}");
    }
}

PushNotificacao.cs

namespace Notificacoes.Modelos;
class PushNotificacao : INotificacao {
    
    public void EnviarMensagem(string mensagem) {
        Console.WriteLine($"Enviando PUSH: {mensagem}");
    }
}
1 resposta

Oi, Diego! Como vai?

Você aplicou bem o conceito de polimorfismo com interface, permitindo tratar diferentes tipos de notificação de forma uniforme. Isso mostra um bom entendimento de abstração e organização do código.

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