1
resposta

Minha solução do desafio

namespace PraticandoObjetocomHeranca.Interfaces;

internal interface IServico
{
    public void ExecutarServico();
}
namespace PraticandoObjetocomHeranca.Classes;

internal class Funcionario
{
    //Atributos
    public string Nome { get; }
    public string Departamento { get; }

    //Construtor
    public Funcionario(string nome, string departamento)
    {
        Nome = nome;
        Departamento = departamento;
    }
}
namespace PraticandoObjetocomHeranca.Classes;
using PraticandoObjetocomHeranca.Interfaces;

internal class Manutencao: IServico
{
    //Atributos
    public string TituloTarefa { get; set; }
    public Funcionario Funcionario { get; set; }

    //Construtor
    public Manutencao (string tituloTarefa, Funcionario funcionario)
    {
        TituloTarefa = tituloTarefa;
        Funcionario = funcionario;
    }

    //Métodos
    public void ExecutarServico()
    {
        Console.WriteLine($"Executando serviço de manutenção: {TituloTarefa}");
        Console.WriteLine($"Resposável: {Funcionario.Nome} - Departamento: {Funcionario.Departamento} \n");
    }
}
namespace PraticandoObjetocomHeranca.Classes;

using System.Runtime;
using PraticandoObjetocomHeranca.Interfaces;

internal class Consultoria : IServico
{
    //Atributos 
    public string TituloTarefa { get; }
    public Funcionario Funcionario { get; }

    //Construtor
    public Consultoria(string tituloTarefa, Funcionario funcionario)
    {
        TituloTarefa = tituloTarefa;
        Funcionario = funcionario;
    }

    //Métodos
    public void ExecutarServico()
    {
        Console.WriteLine($"Executando serviço de consultoria: {TituloTarefa}");
        Console.WriteLine($"Responsável: {Funcionario.Nome} - Departamento: {Funcionario.Departamento} \n");
    }
}
using PraticandoObjetocomHeranca.Classes;
using PraticandoObjetocomHeranca.Interfaces;

Funcionario tecnico = new Funcionario("João", "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();

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Cristin! Como vai?

Agradeço por compartilhar.

Gostei bastante da sua solução, ela mostra claramente o uso da herança e interfaces para estruturar os serviços de forma organizada. O uso da interface IServico para garantir o método ExecutarServico() está muito bem aplicado.

Continue praticando e explorando o conceito de composição, pois ele ajuda a deixar o código mais flexível.

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