Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Está correta a implementação do calculo de comissão de venda do funcionário por cargo ?? Um funcionário que possui um cargo, faz uma venda e precisa saber a comissão da venda baseada no cargo.

public interface ICargo
    {
        double Calcula(double valor);
    }

   public class Atendente : ICargo
    {

        public double Calcula(double valor)
        {
            return valor * 0.1;
        }
    }

  public class Gerente : ICargo
    {
        public double Calcula(double valor)
        {
            return valor * 0.20 + 10;
        }
    }
 public class Vendedor : ICargo
    {
        public double Calcula(double valor)
        {
           return valor * 0.15 + 5;
        }
    }

  public enum Cargo
    {
        ATENDENTE,
        VENDEDOR,
        GERENTE
    }

   public class Funcionario
    {

        public string Nome { get; set; }
        public double Salario { get; set; }
        public Cargo Cargo { get; private set; }

        public Funcionario(string nome,double salario,Cargo cargo )
        {
            this.Nome = nome;
            this.Salario = salario;
            this.Cargo = cargo;
        }

    }

   public class Venda
    {
        public Funcionario funcionario { get; set; }
        /// <summary>
        /// Valor da venda
        /// </summary>
        public double valor { get; private set; }

        public Venda(Funcionario funcionario,double valor)
        {
            this.funcionario = funcionario;
            this.valor = valor;
        }

        public double calcularComissao(ICargo cargo)
        {
                    return cargo.Calcula(valor);
        }


    }
2 respostas

Dessa forma funciona sim, uma alternativa é tirar o enum e salvar na classe funcionário direto um ICargo. Fazendo isso o método calcularComissao fica com a seguinte estrutura.

public double calcularComissao()
        {
                    return this.Funcionario.Cargo.Calcula(valor);
        }

Abraços e bons estudos.

Muito obrigado. Sou novato aqui. Estou gostando muito de estudar com vocês.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software