Similmente all'Adapter Pattern, che si occupa di modificare l'interfaccia/la struttura di un oggetto, il pattern Façade, si occupa di modificare l'interfaccia di una funzionalità/funzione.
Lo scopo di questo pattern è di fornire un'interfaccia di alto livello per nascondendo la complessità sottostante.
Supponiamo che per ricavare un certo dato abbiamo bisogno di effettuare un'elaborazione complessa e di coinvolgere diversi oggetti con i relativi metodi o funzioni globali.
Nel nostro esempio creeremo forzatamente delle funzioni evitando di utilizzare un'unica espressione matematica per calcolare il risultato di una proporzione

"2 sta a 4 come 3 sta a X"
function dividi(x,y){
return x/y;
}
function moltiplica(z,n){
return n*z;
}
Per ottenere il risultato dell'incognita "X" saremo costretti ad effettuare le seguenti operazioni:
var risultatoMoltiplicazione = moltiplica(4,3); var risultatoProporzione = dividi(riultatoMoltiplicazione, 2);
Adottando il Pattern Façade costruiremo una funzione che tramite una semplice invocazione si occupa di svolgere la parte complessa coordinando le funzioni coinvolte:
var calcoloProporzione = function(q,w,e){
var risultatoMoltiplicazione = moltiplica(w,e);
return dividi(risultatoMoltiplicazione, q);
}
Con la funzione "calcoloProporzione" che contiene/incorpora le altre due funzioni "moltiplica" e "dividi", saremo in grado di calcolare, invocando un'unica funzione molteplici calcoli di proporzioni.
calcoloProporzione(2,4,3); // 6
Abbiamo creato un'interfaccia di alto livello per il calcolo di proporzioni.