Exemple #1
0
        static void ComDesignPattern()
        {
            IImposto iss  = new ISS();
            IImposto icms = new ICMS();
            IImposto ipi  = new IPI();

            Orcamento orcamento = new Orcamento(1000);

            CalculadorImposto calculador = new CalculadorImposto();

            calculador.RealizaCalculo(orcamento, iss);
            calculador.RealizaCalculo(orcamento, icms);
            calculador.RealizaCalculo(orcamento, ipi);
        }
        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();
        }