Encontrei esse texto em algum lugar, não sei onde, mas achei bastante interessante....
O Facade e o Delegate tem muitas semelhanças, na maiora dos sistemas q conheço o mesmo objeto tem faz o papel dos dois. Um delegate por natureza é um Facade.
A diferença mais significativa entra Delegate e Facade, é que o Delegate abstrai a complexidade da chamada de métodos de negócio. Enquanto que o Facade é para abstrair a complexidade de um fluxo, ou workflow.
Delegate vc usa sempre para chamar um BO.
Facade vc usa quanto precisa disponibilizar uma forma simples de acessar vários métodos de negócio. Por exemplo: inserir usuário e enviar e-mail. São duas operações, mas para que os objetos clientes não precisem conhecer dois BOs("Criador de usuários"e "enviador de mail") e usado um Facade. Assim o cliente conhece apenas um metodo do Facade, e não se preocupa em como funciona a camada de negócios.
Cliente == Interface gráfica, camada controle, ou qq outra traquitana q acesso Busines Objects(BO).
Resumindo:
Delegate: Abstrai para o clinete, detalhes de como é implementado um Objeto de Negócio.
Facade: Abstrai para o cliente a compexidade entre workflow de Objetos de Negócio
Links para os dois patterns:
http://java.sun.com/blueprints/corej2eepatterns/Patterns/BusinessDelegate.html
http://java.sun.com/blueprints/corej2eepatterns/Patterns/SessionFacade.html
Nenhum comentário:
Postar um comentário