IServico.cs
interface IServico
{
void ExecutarServico();
}
Funcionario.cs
class Funcionario
{
public string Nome { get; }
public string Departamento { get; }
public Funcionario (string nome, string departamento)
{
this.Nome = nome;
this.Departamento = departamento;
}
}
Manutencao.cs
class Manutencao : IServico
{
private string Titulo;
private Funcionario Responsavel;
public Manutencao (string titulo, Funcionario responsavel)
{
this.Titulo = titulo;
this.Responsavel = responsavel;
}
public void ExecutarServico()
{
Console.WriteLine($"Executando serviço de manutenção: {Titulo}");
Console.WriteLine($"Responsável: {Responsavel.Nome} - Departamento: {Responsavel.Departamento}");
}
}
Consultoria.cs
class Consultoria : IServico
{
private string Titulo;
private Funcionario Responsavel;
public Consultoria(string titulo, Funcionario responsavel)
{
Titulo = titulo;
Responsavel = responsavel;
}
public void ExecutarServico()
{
Console.WriteLine($"Executando serviço de consultoria: {Titulo}");
Console.WriteLine($"Responsável: {Responsavel.Nome} - Departamento: {Responsavel.Departamento}\n");
}
}
Program.cs
Funcionario tecnico = new Funcionario("Matheus", "TI");
IServico s1 = new Manutencao("Atualização de servidor", tecnico);
Funcionario analista = new Funcionario("Marina", "Consultoria");
IServico s2 = new Consultoria("Planejamento estratégico", analista);
s1.ExecutarServico();
s2.ExecutarServico();