Esempio n. 1
0
        private static void InjecaoDeDependenciaEAbertoEFechado()
        {
            // OCP - Open/Closed principle
            // DIR -
            var compra = new Compra(500, "sao paulo");
            var calc   = new CalculadoraDePrecos(new TabelaDePrecoPadrao(), new Transportadora());

            Console.WriteLine(calc.Calcula(compra));
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            var compra      = new Compra(799, "SP");
            var calculadora = new CalculadoraDePrecos();

            var precoFinal = calculadora.Calcular(compra);

            Console.WriteLine($"Valor da Compra: R$ {compra.Valor}, Preço Final: R$ {precoFinal}");

            Console.ReadKey();
        }
Esempio n. 3
0
        private static void TestaDIPeOCPExemploCalculadoraDePrecos()
        {
            var calculadora = new CalculadoraDePrecos(new Frete(), new TabelaDePrecoPadrao());
            var compra      = new Compra()
            {
                Cidade = "sao paulo", Valor = 1000
            };

            Console.WriteLine("Preço final da compra: R$" + calculadora.Calcula(compra) + ",00.");
            Console.ReadKey();
        }
Esempio n. 4
0
        static void Main(string[] args)
        {
            var compra = new Compra(799, "SP");

            //Nova Forma de Entrega: Por Transportadora
            var calculadora = new CalculadoraDePrecos
                                  (new TabelaDePrecoPadrao(),
                                  new Transportadora());

            var precoFinal = calculadora.Calcular(compra);

            Console.WriteLine($"Valor da Compra: R$ {compra.Valor}, Preço Final: R$ {precoFinal}");

            Console.ReadKey();
        }
Esempio n. 5
0
        static void Main(string[] args)
        {
            Console.WriteLine("1.Coesao-SRP");

            var cargo       = new Desenvolvedor(new CinquentaPorcento());
            var funcionario = new Funcionario(cargo, 2.500);
            var resultado   = new CalculadoraDeSalario(funcionario).Calcula();

            Console.WriteLine(resultado);
            Console.WriteLine("\n---------------------------\n");

            Console.WriteLine("2.Acoplamento-Estabilidade");

            var listEventosAporGerarNota = new List <IAcaoAposGerarNota>();

            listEventosAporGerarNota.Add(new NotaFiscalDao());
            listEventosAporGerarNota.Add(new EnviadorDeEmail());

            var gerarNf = new GeradorDeNotaFiscal(listEventosAporGerarNota).Gera(new Acoplamento_Estabilidade.Fatura(200, "José"));

            Console.WriteLine(gerarNf.ValorBruto);
            Console.WriteLine("\n---------------------------\n");

            Console.WriteLine("3.OCP-DIP");

            var tabelaPreco    = new TabelaDePrecoPadrao();
            var servicoEntrega = new Frete();

            var calculadoraPreco = new CalculadoraDePrecos(tabelaPreco, servicoEntrega);
            var valorCalculado   = calculadoraPreco.Calcula(new Compra()
            {
                Cidade = new FreteCidadeSaoPaulo(), Valor = 100
            });

            Console.WriteLine(valorCalculado);
            Console.WriteLine("\n---------------------------\n");

            Console.WriteLine("4.Encapsulamento");

            IList <Boleto> boletos = new List <Boleto>();

            boletos.Add(new Boleto(200.00));
            boletos.Add(new Boleto(300.00));
            boletos.Add(new Boleto(350.00));

            Encapsulamento.Fatura fatura = new Encapsulamento.Fatura("Joseph", 900);

            ProcessadorDeBoletos pdb = new ProcessadorDeBoletos();

            pdb.Processa(boletos, fatura);

            Console.WriteLine(fatura.Pago);
            Console.WriteLine("\n---------------------------\n");

            Console.WriteLine("5.Heranca-LSP");

            IList <ContaComum> contas = new List <ContaComum>();
            var contaComum            = new ContaComum();

            contaComum.Deposita(100);
            contas.Add(contaComum);

            var contaComum2 = new ContaComum();

            contaComum2.Deposita(150);
            contas.Add(contaComum2);

            var contaEstudante = new ContaEstudante();

            contaEstudante.Deposita(100);
            contas.Add(contaEstudante);

            ProcessadorDeInvestimentos pi = new ProcessadorDeInvestimentos();

            pi.Processa(contas);

            Console.WriteLine("\n---------------------------\n");
        }