Exemple #1
0
        static void Main(string[] args)
        {
            EnviadorDeEmail            enviadorDeEmail = new EnviadorDeEmail();
            NotaFiscalDao              nfDao           = new NotaFiscalDao();
            IList <IAcaoAposGerarNota> acoes           = new List <IAcaoAposGerarNota>();

            acoes.Add(new EnviadorDeEmail());
            acoes.Add(new NotaFiscalDao());
            acoes.Add(new SAP());
            GeradorDeNotaFiscal gnf = new GeradorDeNotaFiscal(acoes);
            Fatura fatura           = new Fatura(200, "Renan Saggio");

            gnf.Gera(fatura);
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            //Exemplo de uma classe com acoplamento

            /*class GeradorDeNotaFiscal
             * {
             *      private EnviadorDeEmail email;
             *      private NotaFiscalDao dao;
             *
             *      public GeradorDeNotaFiscal(EnviadorDeEmail email, NotaFiscalDao dao) {
             *      this.email = email;
             *      this.dao = dao;
             *      }
             *
             *  public NotaFiscal Gera(Fatura fatura) {
             *
             *      double valor = fatura.ValorMensal;
             *
             *      NotaFiscal nf = new NotaFiscal(valor, ImpostoSimplesSobreO(valor));
             *
             *      email.EnviaEmail(nf);
             *      dao.Persiste(nf);
             *
             *      return nf;
             *  }
             *
             *  private double ImpostoSimplesSobreO(double valor) {
             *      return valor * 0.06;
             *  }
             * }*/

            EnviadorDeEmail            enviadorDeEmail = new EnviadorDeEmail();
            NotaFiscalDao              notadao         = new NotaFiscalDao();
            IList <IAcaoAposGerarNota> acoes           = new List <IAcaoAposGerarNota>();

            acoes.Add(new EnviadorDeEmail());
            acoes.Add(new NotaFiscalDao());
            GeradorDeNotaFiscal gfn = new GeradorDeNotaFiscal(acoes);
            Fatura fatura           = new Fatura(200, "Marcelo");

            gfn.gera(fatura);

            Console.ReadLine();
        }