public NotaFiscal Gera(Fatura fatura) { double valor = fatura.ValorMensal; NotaFiscal nf = new NotaFiscal(valor, ImpostoSimplesSobreO(valor)); // agora apenas chamamos quem se "inscreveu" para axecutar alguma ação após Gerar foreach (var acao in _acoes) { acao.Executa(nf); } return(nf); }
static void Main(string[] args) { EnviadorDeEmail enviadorDeEmail = new EnviadorDeEmail(); NotaFiscalDao notaFiscalDao = new NotaFiscalDao(); var acoes = new List <IAcaoAposGerarNota>(); acoes.Add(new EnviadorDeEmail()); acoes.Add(new NotaFiscalDao()); acoes.Add(new Sap()); var geradorDeNotaFiscal = new GeradorDeNotaFiscal(acoes); Fatura fatura = new Fatura(200, "José LeLé"); geradorDeNotaFiscal.Gera(fatura); Console.ReadLine(); }