static void Main(string[] args) { // A vantagem é se for criado um novo imposto não precisarei refatorar o código, pois só irei // precisar criar uma única nova classe de imposto =) FaturamentoAnual _faturamento = new FaturamentoAnual(250000.00); CalculadorImposto _calc = new CalculadorImposto(); Console.WriteLine(_calc.Calcular(_faturamento, new IRPJ())); Console.WriteLine(_calc.Calcular(_faturamento, new ISS())); Console.WriteLine(_calc.Calcular(_faturamento, new ICMS())); Console.ReadKey(); }
public double ObterValorImposto(FaturamentoAnual faturamento) { return(faturamento.ValorFaturamentoAnual * 0.02); }
public double Calcular(FaturamentoAnual faturamento, IImposto imposto) { return(imposto.ObterValorImposto(faturamento)); }