public void Processa(IList <Boleto> boletos, Fatura fatura) { foreach (Boleto boleto in boletos) { Pagamento pagamento = new Pagamento(boleto.Valor, MeioDePagamento.BOLETO); fatura.AdicionaPagamento(pagamento); } }
public NotaFiscal Gera(Fatura fatura) { double valor = fatura.ValorMensal; NotaFiscal nf = new NotaFiscal(valor, ImpostoSimplesSobreO(valor)); foreach (IAcaoAposGerarNota acao in acoes) { acao.Executa(nf); } return(nf); }
/// <summary> /// D: Dependency inversion principle - one should “depend upon abstractions, [not] concretions /// </summary> private static void DependencyInversion() { IAcaoAposGerarNota enviarEmail = new EnviadorDeEmail(); IAcaoAposGerarNota notaFiscal = new NotaFiscalDao(); IList <IAcaoAposGerarNota> acoes = new List <IAcaoAposGerarNota>(); acoes.Add(enviarEmail); acoes.Add(notaFiscal); GeradorDeNotaFiscal nf = new GeradorDeNotaFiscal(acoes); Fatura fatura = new Fatura("Rodrigo", 200); nf.Gera(fatura); Console.ReadKey(); }
private static void Encapsulamento() { IList <Boleto> boletos = new List <Boleto>(); boletos.Add(new Boleto(500)); boletos.Add(new Boleto(500)); boletos.Add(new Boleto(500)); boletos.Add(new Boleto(500)); Fatura fatura = new Fatura("Caelum", 2000); ProcessadorDeBoletos pdb = new ProcessadorDeBoletos(); pdb.Processa(boletos, fatura); Console.WriteLine(fatura.Pago); Console.ReadKey(); }