1
resposta

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

internal interface IServico
{
void ExecutarServico();
}



internal class Consultoria : IServico
{
private Funcionario funcionario;
private string descricao;

public Consultoria(string descricao, Funcionario funcionario)
{
    this.funcionario = funcionario;
    this.descricao = descricao;
}

public void ExecutarServico()
{
    Console.WriteLine($"Executando serviço de consultoria: {descricao}");
    Console.WriteLine($"Responsavel: {funcionario.Nome} - Departamento: {funcionario.Departamento}");
}
}



 internal class Manutencao : IServico
 {
 private Funcionario funcionario;
 private string descricao;

 public Manutencao(string descricao, Funcionario funcionario)
 {
     this.descricao = descricao;
     this.funcionario = funcionario;
 }

 public void ExecutarServico()
 {
     Console.WriteLine($"Executando serviço de manutenção: {descricao}");
     Console.WriteLine($"Responsavel: {funcionario.Nome} - Departamento {funcionario.Departamento}");
 }
 }



internal class Funcionario
{
public string Nome { get; set; }
public string Departamento { get; set; }

public Funcionario(string nome, string departamento)
{
    Nome = nome;
    Departamento = departamento;
}
}
1 resposta

Oi, Jonas! Como vai?

Agradeço por compartilhar.

Gostei da forma como você aplicou a interface IServico pra padronizar o comportamento e usou composição com Funcionario, isso deixa o código mais flexível e alinhado com boas práticas de orientação a objetos.

Você pode usar o método ToString() pra melhorar a exibição das informações do objeto.


class Funcionario
{
    public string Nome { get; set; }
    public string Departamento { get; set; }

    public override string ToString()
    {
        return Nome + " - " + Departamento;
    }
}

Esse código faz com que, ao imprimir o objeto, ele já mostre nome e departamento de forma automática, evitando repetição no Console.WriteLine.

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