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(); }
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(); }
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(); }
static void Main(string[] args) { //------------------------------------------------------------------------------ //CALCULADOR DE IMPOSTO //Imposto iss = new ISS(); //Imposto icms = new ICMS(); //Orcamento orcamento = new Orcamento(500.0); //CalculadorDeImpostos calculador = new CalculadorDeImpostos(); //calculador.RealizaCalculo(orcamento, iss); //-----------------DECORATOR------------------------------------------------------------- //CALCULADOR DE DESCONTO //CalculadorDeDescontos calculador = new CalculadorDeDescontos(); //Orcamento orcamento = new Orcamento(500); //orcamento.AdicionaItem(new Item("CANETA", 500)); //orcamento.AdicionaItem(new Item("LAPIS", 500)); //double desconto = calculador.Calcula(orcamento); //Console.WriteLine(desconto); Imposto iss = new ISS(); Orcamento orcamento = new Orcamento(100); double valor = iss.Calcula(orcamento); iss.Calcula(orcamento); Console.WriteLine(valor); Console.ReadKey(); //----------------STATES-------------------------------------------------------------- //Orcamento reforma = new Orcamento(500); //Console.WriteLine(reforma.Valor); //reforma.AplicaDesscontoExtra(); //Console.WriteLine(reforma.Valor); //reforma.Aprova(); //reforma.AplicaDesscontoExtra(); //Console.WriteLine(reforma.Valor); //reforma.Finaliza(); //reforma.AplicaDesscontoExtra(); //Console.WriteLine(reforma.Valor); //Console.ReadKey(); //-----------BUILDER--------------------------------------------------------------------- IList <ItemDaNota> itensDaNota = new List <ItemDaNota>(); itensDaNota.Add(new ItemDaNota("Biscoito", 2.50)); itensDaNota.Add(new ItemDaNota("Desodorante", 8.00)); itensDaNota.Add(new ItemDaNota("Feijão", 10.0)); double valorTotal = 0; foreach (var item in itensDaNota) { valorTotal += item.Valor; } double impostos = valorTotal * 0.05; NotaFiscal nf = new NotaFiscal ( "razao", "cnpj", DateTime.Now, valorTotal, impostos, itensDaNota, "obs qualquer" ); //NotaFiscalBuilder criador = new NotaFiscalBuilder(); NotaFiscal nf2 = new NotaFiscalBuilder() .ParaEmpresa("Caelum Ensino e Inovacao") .ComCnpj("Caelum Ensino e Inovacao") .NaDataAtual() .ComObservacoes("Uma obs qualquer") .ComItem(new ItemDaNota("Biscoito", 100.0)) .ComItem(new ItemDaNota("Desodorante", 200.0)) .Constroi(); //NotaFiscal nf = criador.Constroi(); Console.WriteLine(nf.ValorBruto); Console.WriteLine(nf.Impostos); Console.ReadKey(); //------------------------------------------------------------------------------// var conta = new Conta.Conta(500); conta.Saca(600); Console.WriteLine(conta); conta.Saca(100); }