static void Main(string[] args) { Imposto iss = new ISS(); Imposto icms = new ICMS(); CalculadorDeImpostos imposto = new CalculadorDeImpostos(); imposto.RealizaCalculo(new Orcamento(1000), iss); imposto.RealizaCalculo(new Orcamento(1000), icms); Desconto mais500 = new DescontoPorMaisdeQuinhentosReais(); Desconto itens5 = new DescontoPorCincoItens(); CalculadorDeDesconto desconto = new CalculadorDeDesconto(); Orcamento orcamento = new Orcamento(500); orcamento.AdicionaItem(new Item("Caneta", 250)); orcamento.AdicionaItem(new Item("Xablau", 250)); orcamento.AdicionaItem(new Item("Caneta", 250)); orcamento.AdicionaItem(new Item("Xablau", 250)); orcamento.AdicionaItem(new Item("Caneta", 250)); orcamento.AdicionaItem(new Item("Xablau", 250)); orcamento.AdicionaItem(new Item("Caneta", 250)); orcamento.AdicionaItem(new Item("Xablau", 250)); double valorDesconto = desconto.RealizaDesconto(orcamento); Console.WriteLine(valorDesconto); Console.ReadLine(); }
public double RealizaDesconto(Orcamento orcamento) { //Chain of responsabilty //Que é uma cadeia de responsabilidades, onde cada caso tem uma //condição que pode ou não ser atendida Desconto d1 = new DescontoPorCincoItens(); Desconto d2 = new DescontoPorMaisdeQuinhentosReais(); Desconto d3 = new SemDesconto(); d1._proximo = d2; d2._proximo = d3; return(d1.Desconta(orcamento)); }