1
resposta

[Projeto] Minha solução

namespace Teste4_Alura.ExercicioOO;

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

internal class SmsNotificacao : INotificacao
{
    public void EnviarMensagem(string menagem)
    {
        Console.WriteLine($"Enviando SMS: {menagem}");
    }
}
namespace Teste4_Alura.ExercicioOO;

internal class PushNotificacao : INotificacao
{
    public void EnviarMensagem(string mensagem)
    {
        Console.WriteLine($"Enviando PUSH: {mensagem}");
    }
}
namespace Teste4_Alura.ExercicioOO
{
    internal interface INotificacao
    {
        void EnviarMensagem(String mensagem);

    }
}
#region Notificacao de Sistema
using Teste4_Alura.ExercicioOO;

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

};

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


#endregion
1 resposta

Olá, Ulysses, como vai?

Sua implementação demonstra um bom entendimento do conceito de polimorfismo por meio de interfaces, aplicando corretamente a ideia de tratar diferentes notificações de forma uniforme a partir do contrato definido por INotificacao.

No trecho apresentado não aparece a implementação da classe EmailNotificacao, que é utilizada na lista de notificações, mas como PushNotificacao aparece duas vezes, imagino que deva ter se confundido na hora de trazer o código aqui pro fórum.

Obrigado por compartilhar sua implementação e sinta-se à vontade para continuar usando o fórum para trocar ideias e evoluir ainda mais seus projetos.

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