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}");
}
}