1
resposta

Fiz um Strategy para calcular um frete Expresso ou Padrão em cima de um Pedido. Está certo ??

  public interface IFrete
    {
        double Calcular(Pedido pedido);
    }

  public class Pedido
    {
        public double Valor { get; private set; }

        public Pedido(double valor)
        {
            Valor = valor;
        }
    }

 public class CalculadorDeFrete
    {
        public double GetCalculoDoFrete(Pedido pedido,IFrete frete)
        {
            double resultado = frete.Calcular(pedido);
            return resultado;
        }
    }

  public class FreteExpresso : IFrete
    {
        public double Calcular(Pedido pedido)
        {
            return pedido.Valor * 0.30;
        }
    }
  public class FretePadrao : IFrete
    {
        public double Calcular(Pedido pedido)
        {
            return pedido.Valor * 0.1;
        }
    }
  class Program
    {
        static void Main(string[] args)
        {


            CalculadorDeFrete calculadorDeFrete = new CalculadorDeFrete();
            IFrete FreteExpress = new FreteExpresso();
            IFrete FretePadrao = new FretePadrao();
            Pedido pedido = new Pedido(1000);
            double valorFrete = calculadorDeFrete.GetCalculoDoFrete(pedido, FretePadrao);

            Console.WriteLine();

            Console.WriteLine("Valor do frete: " + valorFrete);

            Console.ReadKey();

        }
    }
1 resposta

achei que ficou legal sim, mandou bem!