"Sono stato bocciato a parecchi esami. Un mio amico invece, li ha passati tutti a pieni voti. Ora è ingegnere e lavora in Microsoft. Io sono il proprietario."  - Bill Gates  •  "Se riesco a fare qualcosa in 10 minuti, è perché ho passato anni a studiarlo."  - Bill Gates  •  "Il vostro lavoro riempirà gran parte della vostra vita, e l'unico modo per essere veramente soddisfatti è fare ciò che ritenete sia un grande lavoro."  - Steve Jobs  •  "Siate affamati. Siate folli."  - Steve Jobs  •  

cinque 

ZERO

{JS} Façade Pattern

home / javascript /

Lucio Asciolla

Full Stack Developer

Indice

Cos'è il Façade Pattern?

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.

Scopo

Lo scopo di questo pattern è di fornire un'interfaccia di alto livello per nascondendo la complessità sottostante.

Scenario

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:4=3:X

"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);  

Façade Pattern

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.

Argomenti collegati