/// <summary> /// FACADE: serve como uma frente única para os serviços disponibilizados por um ou mais sub-sistemas. /// SINGLETON: possibilita que o usuário crie uma instância global para determinado objeto /// </summary> private static void FacadeSingleton() { EmpresaFacade fachada = new EmpresaFacadeSingleton().Instancia; String cpf = "12345678-11"; Cliente cliente = new EmpresaFacade().BuscaCliente(cpf); double valor = 500; Fatura fatura = new EmpresaFacade().CriaFatura(cliente, valor); Cobranca cobranca = new EmpresaFacade().GeraCobranca(fatura); cobranca.Emite(); ContatoCliente contato = new EmpresaFacade().FazContato(cliente, cobranca); contato.Dispara(); }