コード例 #1
0
ファイル: Program.cs プロジェクト: tresende/design-patterns
        static void DecorationPattern()
        {
            Imposto   iss       = new ICMS(new ISS());
            Orcamento orcamento = new Orcamento(500);
            var       valor     = iss.Calcula(orcamento);

            System.Console.WriteLine(valor);
        }
コード例 #2
0
        private static void Strategy(Orcamento orcamento)
        {
            var calculadorDeImpostos = new CalculadorDeImpostos();
            var icms = new ICMS();
            var iss  = new ISS();

            calculadorDeImpostos.Calcular(orcamento, icms);
            calculadorDeImpostos.Calcular(orcamento, iss);
        }
コード例 #3
0
        static void Main(string[] args)
        {
            Imposto   icms         = new ICMS();
            Orcamento orcamento    = new Orcamento(500);
            double    valorImposto = CalculadorImpostos.RealizaCalculo(orcamento, icms);

            Console.WriteLine("Valor de imposto calculado: " + valorImposto.ToString());
            Console.ReadKey();
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: tresende/design-patterns
        static void Strategy()
        {
            Imposto iss  = new ISS();
            Imposto icms = new ICMS();

            Orcamento orcamento   = new Orcamento(50);
            var       calculadora = new CalculadorDeImpostos();

            calculadora.RealizaCalculo(orcamento, iss);
            calculadora.RealizaCalculo(orcamento, icms);
        }
コード例 #5
0
        private static void Main(string[] args)
        {
            ITax iss  = new ISS();
            ITax icms = new ICMS();

            Budget        budget        = new Budget(500.0);
            TaxCalculator taxCalculator = new TaxCalculator();

            taxCalculator.Calculate(budget, iss);
            taxCalculator.Calculate(budget, icms);

            Console.ReadKey();
        }
コード例 #6
0
        static void Main(string[] args)
        {
            Imposto iss  = new ISS();
            Imposto icms = new ICMS();

            Orcamento            orcamento  = new Orcamento(500.0);
            CalculadorDeImpostos calculador = new CalculadorDeImpostos();

            //Calculando o ISS
            calculador.RealizaCalculo(orcamento, iss);

            // Calculando o ICMS
            calculador.RealizaCalculo(orcamento, icms);
        }
コード例 #7
0
        static void Main(string[] args)
        {
            // Strategy Pattern
            Console.WriteLine("Strategy Pattern ---------------------");

            ITax icms = new ICMS();
            ITax iss  = new ISS();

            Budget budget = new Budget()
            {
                Value = 300.00
            };


            Console.WriteLine("Calc for ICMS: " + icms.Calc(budget));

            Console.WriteLine("Calc for ISS: " + iss.Calc(budget));

            Console.WriteLine("Strategy Pattern ---------------------");
            Console.ReadKey();
        }
コード例 #8
0
        static void Main(string[] args)
        {
            Imposto iss   = new ISS();
            Imposto icms  = new ICMS();
            Imposto iccc  = new ICCC();
            Imposto ikcv  = new IKCV();
            Imposto icpp  = new ICPP();
            Imposto ihit  = new IHIT();
            Imposto iAlto = new ImpostoAlto();

            Imposto issComposto = new ISS(new ICMS(new ICCC()));

            Conta conta = new Conta(600, "Fulano de Tal");

            conta.StatusAtual.Depositar(conta, 150);
            Console.WriteLine("Saldo = " + conta.Saldo);

            conta.StatusAtual.Sacar(conta, 1000);
            Console.WriteLine("Saldo = " + conta.Saldo);

            conta.StatusAtual.Sacar(conta, 150);
            Console.WriteLine("Saldo = " + conta.Saldo);

            conta.StatusAtual.Depositar(conta, 500);
            Console.WriteLine("Saldo = " + conta.Saldo);

            conta.StatusAtual.Sacar(conta, 150);
            Console.WriteLine("Saldo = " + conta.Saldo);

            Investimento investimento = new Arrojado();

            RealizadorInvestimentos realizarImposto = new RealizadorInvestimentos();

            realizarImposto.RealizarInvestimento(conta, investimento);

            Orcamento orcamento = new Orcamento(1000);

            orcamento.Itens.Add(new Item("ITEM 01", 100));
            orcamento.Itens.Add(new Item("ITEM", 230));
            orcamento.Itens.Add(new Item("ITEM12", 340));
            orcamento.Itens.Add(new Item("LAPIS", 121));
            orcamento.Itens.Add(new Item("CANETA", 1212));

            CalculadorImpostos calculador = new CalculadorImpostos();

            calculador.RealizarCalculo(orcamento, iss);
            calculador.RealizarCalculo(orcamento, icms);
            calculador.RealizarCalculo(orcamento, iccc);
            calculador.RealizarCalculo(orcamento, ikcv);
            calculador.RealizarCalculo(orcamento, icpp);
            calculador.RealizarCalculo(orcamento, ihit);
            calculador.RealizarCalculo(orcamento, issComposto);
            calculador.RealizarCalculo(orcamento, iAlto);

            AplicarDesconto aplicarDesconto = new AplicarDesconto();

            aplicarDesconto.CalcularDesconto(orcamento);


            Conta conta2 = new Conta(1200, "Outro Fulano");

            IList <Conta> contas = new List <Conta>();

            contas.Add(conta);
            contas.Add(conta2);

            RelatorioCompleto relatorioCompleto = new RelatorioCompleto();

            relatorioCompleto.Imprimir(contas);

            RelatorioSimplificado relatorioSimplificado = new RelatorioSimplificado();

            relatorioSimplificado.Imprimir(contas);


            Orcamento orc1 = new Orcamento(500);

            orc1.EstadoAtual.AplicarDescontoExtra(orc1);
            Console.WriteLine("ORC = " + orc1.Valor);

            orc1.EstadoAtual.Aprovar(orc1);
            orc1.EstadoAtual.AplicarDescontoExtra(orc1);
            Console.WriteLine("ORC = " + orc1.Valor);

            orc1.EstadoAtual.Finalizar(orc1);
            orc1.EstadoAtual.AplicarDescontoExtra(orc1);
            orc1.EstadoAtual.Reprovar(orc1);



            Console.ReadKey();
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: rbackbone/DesignPatterns
        static void Main(string[] args)
        {
            Console.WriteLine("----- Curso Design Patterns -----");

            IImposto iss  = new ISS();
            IImposto icms = new ICMS();

            Orcamento orcamento = new Orcamento(500);

            CalculadorImposto calculador = new CalculadorImposto();
            var resultado = calculador.Calcular(orcamento, iss);

            Console.WriteLine($"Orçamento ISS: {orcamento.Valor} , Imposto: {resultado}");

            IImposto ickv = new IKCV();

            resultado = calculador.Calcular(orcamento, ickv);

            Console.WriteLine($"Orçamento IKCV: {orcamento.Valor} , Imposto: {resultado}");

            ImpostoComposto insdc = new INSDC(new INSPT());

            Console.WriteLine($"Orçamento INSDC: {orcamento.Valor} , Imposto: {insdc.Calcular(orcamento)}");


            Orcamento marketing = new Orcamento(1200);

            marketing.AplicaDescontoExtra();
            Console.WriteLine($"Orçamento Marketing: {marketing.Valor} , Estado: {marketing.EstadoAtual}");

            marketing.Aprova();
            marketing.AplicaDescontoExtra();
            Console.WriteLine($"Orçamento Marketing: {marketing.Valor} , Estado: {marketing.EstadoAtual}");

            marketing.Finaliza();
            Console.WriteLine($"Orçamento Marketing: {marketing.Valor} , Estado: {marketing.EstadoAtual}");
            // marketing.AplicaDescontoExtra();


            ///        BUILDER PATTERN / FLUENT INTERFACE

            GeradorNotaFiscal geradorNF = new GeradorNotaFiscal();

            geradorNF
            .ParaEmpresa("RMac Hambone Sys compliance")
            .ComCnpj("923.321.001/0001-12")
            .comItem(new NotaFiscalItem("item 1", 10.2, 0.1))
            .comItem(new NotaFiscalItem("item 2", 13.7, 0.1))
            .comItem(new NotaFiscalItem("item 3", 20.2, 0.1))
            .comItem(new NotaFiscalItem("item 4", 110.2, 0.1))
            .NaDataAtual()
            .ComObservacoes("Entregar no bar da esquina");

            ///       OBSERVER PATTERN

            geradorNF.AdicionarAcao(new NotaDao());
            geradorNF.AdicionarAcao(new NotaEnvio());
            geradorNF.AdicionarAcao(new NotaSMS());

            NotaFiscal NF001 = geradorNF.Gerar();

            Console.WriteLine($"Notafiscal: Valor {NF001.ValorBruto} - Impostos: {NF001.Impostos}");



            Console.ReadKey();
        }