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!

0
respostas

[Projeto] Faça como eu fiz: gestão de serviços

Classe Program:

using GestaoDeServicos;

Funcionario tecnico = new("João", "TI");
IServico s1 = new Manutencao("Atualização de servidor", tecnico);

Funcionario analista = new ("Marina", "Consultoria");
IServico s2 = new Consultoria("Planejamento estratégico", analista);

s1.ExecutarServico();
s2.ExecutarServico();

Interface IServico:

namespace GestaoDeServicos;

internal interface IServico
{
    void ExecutarServico();
}

Classe Funcionario:

namespace GestaoDeServicos;

internal class Funcionario(string nome, string departamento)
{
    public string Nome { get; private set; } = nome;

    public string Departamento { get; private set; } = departamento;
}

Classe Manutencao:

namespace GestaoDeServicos;

internal class Manutencao(string servico, Funcionario funcionario) : IServico
{
    public string Servico { get; private set; } = servico;
    public Funcionario Funcionario { get; private set; } = funcionario;

    public void ExecutarServico()
    {
        Console.WriteLine($"Executando serviço de manutenção: {Servico}");
        Console.WriteLine($"Responsável: {Funcionario.Nome} - Departamento: {Funcionario.Departamento}");
    }
}

Classe Consultoria:

namespace GestaoDeServicos;

internal class Consultoria(string descricao, Funcionario funcionario) : IServico
{
    public string Descricao { get; private set; } = descricao;
    public Funcionario Funcionario { get; private set; } = funcionario;

    public void ExecutarServico()
    {
        Console.WriteLine($"Executando serviço de manutenção: {Descricao}");
        Console.WriteLine($"Responsável: {Funcionario.Nome} - Departamento: {Funcionario.Departamento}");
    }
}