Definição
Este padrão de projeto fornece uma interface unificada para um conjunto de interfaces em um subsistema. Ele define uma interface de alto nível que torna o subsistema fácil de usar. Um façade é um objeto que fornece uma interface simplificada para um conjunto maior de código, como uma biblioteca de classes.
Quando usar
O façade pode ser usado para fazer uma biblioteca de software fácil de usar e
compreender, uma vez que a fachada possui métodos adequados para tarefas comuns. Por essa mesma razão, pode tornar o código que usa a biblioteca mais legível. O padrão também pode ser usado para reduzir as dependências de código fora do funcionamento interno de uma biblioteca, já que a maioria usa o código de façade que permite mais flexibilidade ao desenvolvimento do sistema. Um cenário de uso final é onde podemos envolver várias APIs mal
projetadas com uma única API bem concebida.
Benefícios
Benefícios
O principal benefício com o Facade pattern é que nós podemos combinar muitas complexidades, exige métodos e blocos de código em um único método que executa uma tarefa complexa e recorrente. Além de tornar o código mais fácil de usar e compreender, reduz as dependências de código entre ibliotecas ou pacotes, faz os programadores mais aptos considerarem a idéia antes de escrever um novo código que expõe o funcionamento interno de uma biblioteca ou um pacote. Além disso, desde o façade pattern, é feito uma ligação fraca entre o código do cliente e outros pacotes ou bibliotecas o que permite variar os componentes internos desde que o cliente não chame-os diretamente.
Desvantagens / consequências
Uma desvantagem é que temos muito menos controle do que acontece além da superfície. Além disso, se algumas classes necessitam de pequenas variações para a execução de metodos façade pode se acabar em uma confusão.
Exemplo
Considere o gráfico acima, onde a classe Client faz chamadas para a classe
BankAccountFacade. A classe Facade usa as classes AccountManager, SecurityManager, AccountReference e BankAccount para executar as ações apropriadas. Ao utilizar o padrão Facade, ocorre a separação do código do cliente dos detalhes de implementação e de segurança na execução de tarefas
relacionados com a conta bancária.
Blz, muito bom. Simples mais eficiente
ResponderExcluir