Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Faça como eu fiz: execução de tarefas agendadas

Classe Program:

List<TarefaAgendada> tarefas = new()
{
    new BackupTarefa(),
    new RelatorioTarefa(),
    new LimpezaTarefa()
};

foreach (var tarefa in tarefas)
{
    tarefa.Executar();
}

Classe Abstrata TarefaAgendada:

namespace Polimorfismo.ExecucaoDeTarefasAgendadas;

internal abstract class TarefaAgendada
{
    public abstract void Executar();
}

Classe BackupTarefa:

namespace Polimorfismo.ExecucaoDeTarefasAgendadas;

internal class BackupTarefa : TarefaAgendada
{
    public override void Executar()
    {
        Console.WriteLine("Executando tarefa de backup do sistema...");
    }
}

Classe RelatorioTarefa:

namespace Polimorfismo.ExecucaoDeTarefasAgendadas;

internal class RelatorioTarefa : TarefaAgendada
{
    public override void Executar()
    {
        Console.WriteLine("Gerando e enviando relatório diário...");
    }
}

Classe LimpezaTarefa:

namespace Polimorfismo.ExecucaoDeTarefasAgendadas
{
    internal class LimpezaTarefa : TarefaAgendada
    {
        public override void Executar()
        {
            Console.WriteLine("Limpando arquivos temporários do servidor...");
        }
    }
}
1 resposta
solução!

Oi, Fabiano! Como vai?

Gostei da forma como você aplicou o polimorfismo de subtipos utilizando a classe abstrata TarefaAgendada e as implementações específicas para cada tarefa. A organização ficou clara e demonstra bem como o método Executar() pode assumir comportamentos diferentes para cada classe derivada, tornando o código mais flexível e fácil de expandir.

Uma dica interessante para o futuro é utilizar DateTime para registrar o momento em que cada tarefa foi executada. Veja este exemplo:


DateTime horario = DateTime.Now;
Console.WriteLine($"Tarefa executada em: {horario}");

Nesse exemplo, o código armazena a data e hora atuais e exibe essa informação no console, algo muito útil em sistemas de agendamento e monitoramento de tarefas.

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